在编译时分配的内存叫做“静态内存分配”,比如:
int a[256] ; //分配 256 ints 空间,且将a设为指向数组首位的指针
“动态内存分配”发生在程序调入和执行的时候。
#include <stdio.h>
#include <stdlib.h>
int main(){
int N;
printf("N:");
scanf("%d", &N);
int *pa = (int *) malloc(sizeof(int)*N);
pa[N-1] = 1;
free(pa);
return 0;
}
在很多的情况下,我们并不能在程序运行之前就确定要使用多大的数组,这时就要使用动态内存分配,即在程序执行的过程中动态地分配或者回收存储空间。
malloc和free一定要成对出现!
网友评论