c语言malloc如何实现动态分配

关于动态内存申请malloc函数我还不是很明白。
p=(int *)malloc(10*sizeof(int))
而int a[10] 也是10个,那malloc有什么好处呢?
malloc当需要多大内存时,就给你多大,但是定义的时候还是需要给定大小,那他是如何实现动态分配的呢?
小弟还是不明白,问题依旧如上。 是否动态分配函数可以随时更改和回收所分配内存的大小,这才是他的特点所在呢?

第1个回答  2010-06-12
就给你个简单的例子吧
int m;
scanf("%d",m);
int mn[m];
不会报错,这就是动态的意思,而如果如下
int m,mn[m];
将会报错,因为m是一个变量啊!你比较下应该就知道了
第2个回答  2010-06-13
这决定输出地空间要留多少,如a[10]={1,2,3}其实长度就只有3了
第3个回答  2012-03-04
赞同 呵呵 我也刚学到呢
相似回答