【发布时间】:2014-07-12 05:12:21
【问题描述】:
我正在玩在 C++ 中动态分配数组。我有这个代码
#include <iosteam>
using namespace std;
void A(int* arr)
{
for(int i = 0; i < 10; i++)
cout << arr[i] << endl;
}
int main()
{
int **nums;
nums = new int*[10];
for(int i = 0; i < 10; i++)
nums[i] = new int(i);
for(int i = 0; i < 10; i++)
cout << *nums[i] << endl;
cout << endl;
A(*nums);
return 0;
}
这给了我输出
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
33
0
1
0
我的问题是:当数组传递给函数 A(int* arr) 时,为什么打印在那里的数组的输出与 main() 中定义的数组的输出不同?我一直在研究动态分配和双指针,但我似乎无法弄清楚这一点。我已经搜索了 SO 问题,但找不到该问题的合适答案。我想知道我是否可以在函数 A() 中打印数组的值,或者是否可以这样做。任何帮助表示赞赏。
【问题讨论】:
标签: c++ dynamic-arrays