Bij*_*jee 2 c arrays malloc static dynamic
当在运行时已知大小时,常说使用 malloc 我们也可以写
int x;
scanf("%d",&x);
char arr[x];
Run Code Online (Sandbox Code Playgroud)
那么当我们可以动态声明数组时为什么要使用 malloc 呢?
写入char arr[x];将在堆栈上分配内存。
堆栈的大小通常限制在 1MB 左右。如果超过此预定义数量,则会出现运行时错误。某些编译器将允许您更改堆栈大小,但您最终仍会达到比使用malloc.