c c 動態記憶體配置的使用原則

2021-07-14 20:41:32 字數 603 閱讀 4271

原則上是誰動態申請記憶體,那就該由誰來進行釋放

其中乙個好處是追查是否有記憶體洩露時,可根據這個原則進行追查

使用函式進行說明:

1.第一種方式,fun函式的返回值的儲存變數,是由其呼叫方自己建立的,因此呼叫方能夠知道這個變數什麼時候使用結束,也因此由其自己進行釋放記憶體

char *string = (char*)malloc(sizeof(char) * 50);

fun(string);

free(string);

2:第二種方式,由乙個功能模組提供記憶體的管理,如:

char* create_str() ;

void free_str(char *stri);

char *string = create_str();

free_str(string);

3.下面的列子是個不好的例子,因此呼叫方並不是建立這個變數的一方,而後自己使用完後,卻需要自己手動釋放該記憶體,這樣會使呼叫方容易忘記該情況

fun() {

return (char*)malloc(sizeof(char) * 50);

char *string = fun():

free(string)

C C 程式設計 動態記憶體

在使用陣列的時候,總有乙個問題困擾著我們 陣列應該有多大?例如編寫程式求n階行列式的值,用陣列表示行列式,需如下定義 define n 10 陣列定義時方括號內必須是常量 double a n n n n二維陣列表示二階行列式 而以下定義形式則是錯誤的 c 在codeblocks下無此問題 int ...

C C 動態記憶體管理

一 c語言中動態記憶體管理方式 c語言中使用 malloc calloc realloc free進行記憶體的管理和釋放 1.malloc動態記憶體申請 int ptest int malloc 10 sizeof int 申請記憶體的方式 free 釋放 2.calloc 該函式會將申請的記憶體空...

C C 動態記憶體管理

注意malloc free new delete new delete一定要匹配使用,否則可能出現記憶體洩漏甚至崩潰的問題小結 1 兩組函式都負責動態記憶體管理 2 malloc free是c c 標準庫的函式,而new delete是c 操作符。3 malloc free只負責動態分配空間 釋放空...