关于C中的数组

nob*_*alG 5 c arrays

我写了下面的代码(参见问题的代码注释),

#include<stdio.h>
int main()
{
    int size;
    scanf("%d",&size);
    int arr[size];    /*is it a valid statement?*/
    for(int i=1;i<=size;i++)
    {
        scanf("%d",&arr[i]);
        printf("%d",arr[i]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

APr*_*mer 6

使用非常量数组大小是有效的C99但不是C90.有一个较旧的gcc扩展允许它.

请注意,利用此功能会更难检查内存分配是否成功.将它与用户提供的值一起使用可能并不明智.