0
下面的代码似乎当数组声明如下弃土取决于阵列被声明的方式是什么?
int numbers[3]
工作但是当我尝试宣告它像
int* numbers = new int[3];
调整调整大小排列的前两个数字之后似乎迷路。 我真的不能弄清楚是什么betwean两个声明的区别。任何澄清将是有益的。
int main() {
int numbers_size = 0;
int numbers_capacity = 3;
//works when declared like this
//does not work when declared like int* numbers = new int[3]
int numbers[3];
do {
...
if(numbers_capacity == numbers_size)
numbers_capacity = resize_array(numbers, numbers_size);
}while(numbers[numbers_size - 1] != 0);
return 0;
}
int resize_array(int* arr, int arr_size) {
int* temp = new int[arr_size];
for(int i = 0; i < arr_size; i++)
temp[i] = arr[i];
delete [] arr;
arr = new int[4*arr_size];
for(int i = 0; i < arr_size; i++) {
arr[i] = temp[i];
}
delete [] temp;
return 4*arr_size;
}
这样那样的问题最好解决使用一个体面的调试器,而不是要求对SO一行通过您的代码行步进。 – 2014-12-04 18:04:57