c++ - 如何在 C++ 中动态声明一个指向整数的指针数组?
问题描述
为什么这行得通?
int **ar1 = new int*[5];
虽然这会在 C++ 中引发错误:
int *ar2[] = new int*[5];
我知道在第一种情况下 ar1 代表一个指向指针的指针,而在第二种情况下 ar2 代表一个指向整数的数组。鉴于“new int*[5]”这一行意味着 new 运算符正在返回指向内存空间的指针以存储 5 个指向整数的指针,那么第二种情况有什么问题???
解决方案
您正在尝试初始化一个数组对象。
初始化数组类型的对象时,初始化程序必须是字符串文字(可选地用大括号括起来)或 为数组成员初始化的大括号括起来的列表:
在您的情况下,您都不提供。大括号初始化例如:
int i = 1, j = 2;
int *ar2[] = {&i, &j};
推荐阅读
- firebase - 跨托管在同一 firebase 项目上的站点共享 firebase 身份验证
- jquery-select2 - Ajax 不适用于动态添加的 Select2 选择列表
- google-apps-script - 如果值已经存在,请在插入数据之前检查 Google 表格
- idl - 如何运行 IDL 程序以在所有频段上执行频段数学?
- linux - 在标准输出的行尾添加更多新行
- mysql - 如何使用以前的列进行减法(差异)?
- crystal-lang - 如何在 Crystal 中迭代字素簇?
- javascript - 并行 Web JS 程序的 Web Worker 中的 `onmessage` 和 `addEvenListener("message")` 之间的不可预测的行为
- python - 比较两个数据框并按组 ID 查找特定值
- list - 在字符串列表上颤振本地化