跳转到内容

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
华夏公益教科书