数组大小必须是常量:“表达式必须有常量值”
在 C 中初始化数组时,必须知道数组大小在编译时。这意味着数组的行维和列维的值必须是常量表达式。
考虑以下示例:
int row = 8; int col = 8; int [row][col]; // error: expression must have a constant value
在此代码中,声明数组时未指定变量名。此外,row 和 col 变量不是常量,因此编译器无法在编译时确定数组的大小。这会导致“表达式必须具有常量值”错误。
动态分配数组
要创建动态大小的数组,必须使用在堆上分配内存新的运营商。必须使用delete释放分配的内存,以防止内存泄漏。
// Allocate the array int** arr = new int*[row]; for (int i = 0; i < row; i++) arr[i] = new int[col]; // Use the array // Deallocate the array for (int i = 0; i < row; i++) delete[] arr[i]; delete[] arr;
固定大小数组
对于固定大小数组,行和列维度必须被声明为 const:
const int row = 8; const int col = 8; int arr[row][col];
以上是为什么 C 需要常量数组大小:'表达式必须具有常量值”?的详细内容。更多信息请关注PHP中文网其他相关文章!