C语言malloc()使用心得
作者:互联网
一、malloc()使用的注意事项
1.每次使用malloc()开辟的空间的都要free()掉
2.同一个地址只能free一次
3.使用指针变量时注意free掉的的是地址空间,而不是删除该变量。
int *a=(int *)malloc(sizeof(int)*64);
free(a);//刚刚malloc的空间被释放,但是在当前函数内int* a的生命周期仍然存在。
4.在循环内开辟空间很容易造成内存泄露,要把每次循环开辟的空间都要释放掉。
很多人都不把free当回事。认为只是开辟不大空间,程序就结束了,内存也就自动释放了。但可能会出现这种情况,你在一个函数1开辟了一个不大的空间没有free,但是在另外一个函数2多次调用函数1。注意:每次调用函数1开辟的空间在整个线程没结束之前都会一直存在。博主因为malloc()没free(),成功把自己电脑干死机三次。
二、使用malloc()的一个经验
当一个函数需要传入指针的时,最好在函数外就把该指针需要的空间开辟malloc出来。最好不要在函数里面为这个指针开辟空间。
这样会导致free的时候不知道在哪里free。
在函数外面malloc(),在函数外free();这对组合最好不要跨函数出现。
标签:malloc,函数,int,free,C语言,空间,心得,开辟 来源: https://www.cnblogs.com/yourdopamine/p/16183942.html