登录 注册
当前位置:主页 > 资源下载 > 49 > 直接转换法:从数据流图到模块结构图的存储器分配

直接转换法:从数据流图到模块结构图的存储器分配

  • 更新:2024-11-05 16:46:56
  • 大小:5.82MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Unix - 操作系统
  • 格式:PDF

资源介绍

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环境高级编程