我发现一篇介绍在C语言中动态创建数组的文章。根据该文章所述,正确的做法是:
但是我想,如果我能做出这样的事情——
int n;
scanf("%d", &n);
int *arr = (int*)malloc(n*sizeof(int));
但是我想,如果我能做出这样的事情——
int n, i, sum=0;
scanf("%d", &n);
int arr[n];
我已经编译并运行了它,没有任何错误。那么,我的问题是为什么我需要使用malloc()
呢?这与C语言的新旧版本有关吗?
scanf
。如果你输入-10
会发生什么? - tadmanmalloc()
。@chux - Farhan Fuadfgets
并对其应用sscanf
,则更容易从错误的输入中恢复。 - Weather Vane