禁止使用2d数组初始化,并且出现此错误-
我被指示按原样使用main(),并且我只能编辑其他两个函数。
source.cpp(81): error C4700: uninitialized local variable 'Array' used
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
代码:
int main(){
int **Array;
Array = getArray2D(10, 10, Array);
for (int i = 0; i<10; i++)
for (int j = 0; j<10; j++){
Array[i][j] = 4;
}
cout << endl;
for (int i = 0; i<10; i++){
for (int j = 0; j<10; j++){
cout << Array[i][j];
}
cout << endl;
}
getchar();
return 0;
}
int* getArray1D(int n, int *A)
{
A = new int[n];
for (int i = 0; i < n; ++i)
A[i] = 0;
return A;
}
int** getArray2D(int m, int n, int** A)
{
// m array of integers
A = new int*[m];
for (int i = 0; i < m; ++i)
{
// create a 1d array on each element of a A
A[i] = getArray1D(n, A[i]);
}
return A;
}
我该如何纠正呢?
问题是您不将初始化Array
为NULL,然后使用它。
所以改变这个:
int **Array;
Array = getArray2D(10, 10, Array);
对此:
int **Array = NULL;
Array = getArray2D(10, 10, Array);
您得到的实际上是警告,而不是错误,看起来像这样:
warning: ‘Array’ is used uninitialized in this function [-Wuninitialized]
不要忘了以后取消分配内存!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句