【发布时间】:2020-11-02 15:34:43
【问题描述】:
错误:{ token 之前的预期表达式
#include <stdio.h>
int main() {
int t;
scanf("%d",&t);
while(t-->0){
int m,n,a,b,k;
int *arr;
scanf("\n%d %d",&n,&m);
arr[n]={ };
for(int i=0;i<m;i++){
scanf("\n%d %d %d",&a,&b,&k);
int max=arr[0];
for(int i=a;i<=b;i++){
arr[i]=arr[i]+k;
if(arr[i]>max){
max=arr[i];
}
}
printf("%d\n",max);
}
}
return 0;
}
在这段代码中,我将数组初始化为零,但它不起作用,如果我也这样做arr[n]={} 或声明 array global 那么我也得到了错误。
【问题讨论】:
-
哪一行导致错误?
-
请提供带有行号的实际错误消息并说明您使用的编译器。
-
@ssd 是的,初始化失败,而不是数组本身。那么现在的问题是什么,你有一个需要初始化为零的 VLA?使用 memset。
-
我投票结束这个问题,因为最初询问的问题已被所有者从帖子中删除,从而使原始问题、cmets 和答案无效。
-
我将这个问题回滚到它的原始版本。请发布一个新问题以获得更多帮助。