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();这对组合最好不要跨函数出现。

posted @ 2022-04-23 22:52  多巴胺dopamine  阅读(144)  评论(0编辑  收藏  举报