首页 >后端开发 >C++ >为什么 C 需要常量数组大小:'表达式必须具有常量值”?

为什么 C 需要常量数组大小:'表达式必须具有常量值”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-11 08:51:15635浏览

Why Does C   Require Constant Array Sizes:

数组大小必须是常量:“表达式必须有常量值”

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn