我目前正在学习C++,所以如果我看起来有点傻,对不起。C++使用指针创建数组
我目前的练习,我坚持要求我编写一个函数IndexArray(int n),它返回一个指向动态分配的具有n个元素的整数数组的指针,每个元素都被初始化为它自己的索引。 (从工作表复制)。
我读过几次和不完全了解,但他们举了一个例子:
假设IntPtr的声明为
int *intPtr;
声明
intPtr = IndexArray(10);
应产生以下内存配置:
intPtr -> 0 1 2 3 4 5 6 7 8 9
从这个例子我猜我的函数需要创建一个大小为n的数组,其值从0到n-1,然后另一个指针需要指向该数组。
这里是他们的测试代码:
int *values1;
values1 = IndexArray(10);
我知道如何轻松地创建数组,但我不完全理解指针足以知道要做什么真的。我想返回一个数组会工作:
int *IndexArray(int n) {
cout << n << endl;
int arrayTemp[n];
for(int i = 0; i < n; i++) {
arrayTemp[i] = i;
}
return arrayTemp;
}
但是测试时,值1阵列不会从0-9所包含的值(虽然arrayTemp做所返回的权利之前)。
任何帮助将是惊人的,并希望我已经给你所需要的一切帮助。谢谢! :d
int arrayTemp [n]; => int * arrayTemp = new int(n);分配给int arrayTemp [n]的Beacuse内存将在返回arrayTemp后被释放; – neohope 2013-03-14 05:14:53
这不是C++。 C++不支持VLA(可变长度数组)。标记已更改为C – 2013-03-14 05:20:04
这是C++,它不是可变长度数组。数组的长度永远不会改变。将长度发送到函数,并根据发送的长度创建数组的大小。那之后永远不会改变。 – 2013-03-14 05:26:56