考虑一下C中的这些代码:
int n;
scanf("\n%d ",&n);
int arr[n];还有这个。
int n;
scanf("\n%d ",&n);
int *p = (int *)malloc(n*sizeof(int)); 为什么我们首先需要动态内存分配?
当数组在运行时创建时,第一段代码不是动态内存分配吗?
何时使用malloc()?
发布于 2020-01-21 18:17:37
int n;
scanf("\n%d ",&n);
int arr[n];如果它有效,那么这意味着您使用的编译器仍然将其解释为"DMA“,这里唯一的区别是它将在作用域结束时被解除分配,但我不认为这是C的一个好做法。
https://stackoverflow.com/questions/59846871
复制相似问题