跳轉到內容

C++ 程式設計/程式碼/標準 C 庫/記憶體

來自華夏公益教科書,開放的書籍,開放的世界

標準 C 記憶體管理

[編輯 | 編輯原始碼]

本節介紹標準 C 庫中的記憶體管理元素。

注意
建議使用 智慧指標,例如 unique_ptr<type> 用於 C++ 11 之後的程式碼,以及 newdelete 運算子用於舊程式碼。它們提供了對物件建立的額外控制。

語法
#include <cstdlib>
void *calloc( size_t num, size_t size);

函式 calloc() 分配一個可以儲存 num 個單元的陣列的記憶體塊,每個單元的大小為 size。陣列的每個單元都設定為值零。

如果操作失敗,calloc() 返回 "NULL"。

示例

     ptr = (float*)calloc(25, sizeof(float));
     /* It would create an array of 25 cells, each one with a size of 4 bytes
        “(sizeof(float))”, all the cells initialized with value 0 */
相關主題
free - malloc - realloc
語法
#include <cstdlib>
void free( void *p);

函式 free() 釋放先前分配的記憶體塊,該記憶體塊來自對 calloc、malloc 或 realloc 的呼叫。

相關主題
calloc - malloc - realloc
語法
#include <cstdlib>
void *malloc( size_t s );

函式 malloc() 分配大小為 s 的記憶體塊。記憶體保持未初始化。

如果操作失敗,malloc() 返回 NULL

相關主題
calloc - free - realloc
語法
#include <cstdlib>
void *realloc( void *p, size_t s);

函式 realloc() 調整由 malloc() 或 calloc() 建立的記憶體塊的大小,並返回指向新記憶體區域的指標。

如果調整大小操作失敗,realloc() 返回 NULL 並保持舊記憶體區域不變。

注意
realloc() 在 C++ 中沒有相應的運算子 - 但是,這不是必需的,因為標準模板庫已經為大多數用途提供了必要的記憶體管理。

相關主題
calloc - free - malloc
華夏公益教科書