如果我必须首先从 argv
计算数组的大小,我该如何使数组可全局访问(例如通过指针)?
#include <cstdlib> // atoi
int *p[];
int main (int argc, char** argv)
{
int x = atoi (argv[1]);
int i[x];
p = &i;
}
错误:“p”的存储大小未知
最佳答案
像这样:
#include <string>
#include <vector>
std::vector<int> p;
int main(int argc, char ** argv)
{
if (argc < 2) { return 1; } // make sure argv[1] exists!
p.resize(std::stoi(argv[1]));
// ...
}
(有多种方法可以将字符串解析为整数;选择最适合您需要的一种,例如考虑错误处理。)
关于C++:如何使数组可全局访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294584/