malloc殺內存于無形
C語言中的malloc函數是分配內存用的,函數內部生命的變量也會分配內存,但是當函數釋放的時候內存也就釋放了,這樣就不會占用內存了,但是malloc函數不同,
如下
typedef struct Node
{
int a;
Node* next;
}LNode,*LList;
LList a=(LList)malloc(sizeof(LNode));
這行是分配內存的代碼,如果在一個函數中調用的了這個函數,函數分配的內存就一直存在除非把它釋放了
free(a);
這行代碼是釋放內存的代碼,
依次沒有釋放內存沒有關系,但是如果說函數被調用多次,就很容易出現問題,
比如說我寫了一個象棋程序,其中只分配了如上例大小的結構體的內存,沒有釋放
那段代碼運行了幾億次,每次我的程序都內存出問題,后來我才發(fā)現是什么原因。
所以自己分配的內存,含著淚也要把它釋放了
浙公網安備 33010602011771號