我需要在运行时根据用户输入调整数组大小,不允许使用向量。
int main() {
int* array;
int size = 0;
cin >> size;
array = new int[size];
//do some stuff in here setting values in the array
for (int i = 0; i < size; i++) {
cout << array[i];
}
delete [] array;
}
代码在VS2015中编译并运行,但不是将数组分配给正确大小的数组,而是将值-842150451转储到数组指向的内存中。有没有办法在没有载体的情况下做到这一点,如果有,怎么做?
答案 0 :(得分:1)
默认情况下,数组不会初始化为任何值,因此它们只会包含以前内存中的内容。
如果你想将它们全部初始化为0,你可以做到
array = new int[size]();