为什么会这样?
int **ar1 = new int*[5];
虽然这会在 C++ 中引发错误:
int *ar2[] = new int*[5];
我知道在第一种情况下 ar1 代表一个指向指针的指针,而在第二种情况下 ar2 代表一个指向整数的指针数组。鉴于“new int*[5]”行意味着 new 运算符正在返回指向内存空间的指针以存储 5 个指向整数的指针,那么第二种情况有什么问题???
最佳答案
您正在尝试 initialize一个数组对象。
When initializing an object of array type, the initializer must be either a string literal (optionally enclosed in braces) or be a brace-enclosed list of initialized for array members:
在您的情况下,您两者都不提供。大括号初始化例如:
int i = 1, j = 2;
int *ar2[] = {&i, &j};
关于c++ - 如何在 C++ 中动态声明一个指向整数的指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51744672/