存储器分配-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

时间:2024-07-29 08:58:50
【文件属性】:

文件名称:存储器分配-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

文件大小:18.16MB

文件格式:PDF

更新时间:2024-07-29 08:58:50

UNIX 环境高级编程 linux

7.8 存储器分配 ANSI C说明了三个用于存储空间动态分配的函数。 (1) malloc。分配指定字节数的存储区。此存储区中的初始值不确定。 (2) calloc。为指定长度的对象,分配能容纳其指定个数的存储空间。该空间中的每一位 ( b i t )都初始化为0。 (3) realloc。更改以前分配区的长度 (增加或减少 )。当增加长度时,可能需将以前分配区的 内容移到另一个足够大的区域,而新增区域内的初始值则不确定。 #include void *malloc(size_ts i z e) ; void *calloc(size_tn o b j, size_t s i z e) ; void *realloc(void *p t r, size_t n e w s i z e) ; 三个函数返回:若成功则为非空指针,若出错则为 N U L L void free(void *p t r) 这三个分配函数所返回的指针一定是适当对齐的,使其可用于任何数据对象。例如,在一个特 定的系统上,如果最苛刻的对齐要求是 d o u b l e,则对齐必须在 8的倍数的地址单元处,那么这 三个函数返回的指针都应这样对齐。 回忆1 . 6节中对类属void *指针和函数原型的讨论。因为这三个 a l l o c函数都返回类属指针, 如果在程序中包括了< s t d l i b . h > (包含了函数原型),那么当我们将这些函数返回的指针赋与一个 不同类型的指针时,不需要作类型强制转换。 函数f r e e释放p t r指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用 1 2 8 U N I X环境高级编程 下载


网友评论