C++:如何使数组可全局访问?

标签 c++ arrays pointers size global-variables

如果我必须首先从 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/

相关文章:

c++ - 如何对 vector 或 deque KeyPair 进行排序

java - 大字节数组使用的堆比预期多

c - 单个数组元素会衰减为指针吗?

c - 用C的指针数组?

c - 关于 C 指针范围

c++ - 用于 SVM OpenCV 训练的交通标志图像集

c++ - 在构造函数中捕获内存分配错误?

java - 从 Java 数组中获取第二次出现的元素

javascript - 访问 JSON 对象内的数组元素

c++ - 默认析构函数是否释放成员指针指向的内存?