c++ - 如何在 C++ 中动态声明一个指向整数的指针数组?

标签 c++ arrays pointers

为什么会这样?

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/

相关文章:

c++ - C++一次读取一个文件,无法输出内容

c++ - OpenCV:访问并求像素的平方根

c++ - 如何使 exuberant-ctags 解析 "using"样式的 typedef?

c++ - 头文件和包含最佳实践

javascript - 分配随机数,避免 JavaScript 中某个范围内的数字被阻塞

c - 如果指针可以转换为任何类型(在 c 中),为什么要 void pointer?

javascript - 如何生成除数的值

c - 在 C 中初始化多维数组

c - 指向数组中第一个元素的指针! (C)

pointers - 将 Go 指针传递给 Cgo