堆函数的学习与使用
具体实践:int *p,*p1;
1.p=(int*)malloc(n*sizeof(int));
2.p=(int*)calloc(n,sizeof(int));
跟malloc的区别:
calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
注意初始化后两者的值全都是0.(for Dev-c++ 5.11)
3.p=(int*)realloc(p,n*sizeof(int));//用来重新分配然而,如果写成p1=(int*)realloc(p,n*sizeof(int));
p1地址和p的一样,但是会显示exe已停止运行。
所以,realloc用于自身。
p1=(int*)realloc(p,n*sizeof(int));
原因是p已经被重新分配,相当于已经释放了,在后面再加上free(p)就会引起“exe已停止运行”;只需free(p1)。
理论: