堆函数的学习与使用

具体实践: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)。

理论:

堆函数的学习与使用

堆函数的学习与使用

堆函数的学习与使用

堆函数的学习与使用