我收到编译错误: 答案 0 :(得分:0) C89没有可变长度的数组,所以 此行是错误的: 这取决于函数参数 您可以将原始数组替换为"expression must have a constant value"
,即使大小是一个常数。我的错在哪里我找不到?? void foo(int n)
{
int x[n];
int i = 5;
if (i == 0)
i--;
x[i] = 5; //OK, since i is 4
}
1 个答案:
int x[n];
n
,它不是编译时常量。malloc
:int* x = malloc( n * sizeof( int ) );