从问题到程序资料讲解.ppt

从问题到程序资料讲解.ppt

动态存储分配与释放 根据运行中的需要分配存储,取得存储块使用,称为动态存储分配。在运行中根据需要动态进行。 程序里怎样使用分配的存储块?程使用变量是通过名字。动态分配的存储块没有名字,因此需要其他访问途径。 借助于指针。用指针指向存储块,间接使用被指存储。访问动态分配存储是指针的最重要用途。 与此对应:动态释放,不用的动态存储块应交还。 动态分配/释放由动态存储管理系统完成,这是程序运行系统的子系统,管理着称作堆(英文heap)的存储区。 大部分常规语言都有这种机制。 C语言的动态存储管理机制 用标准库函数实现,stdlib.h/malloc.h 1)存储分配函数malloc()。原型: void *malloc(size_t n); /*size_t是某整型*/ 分配一块不小于n的存储,返回其地址。无法满足时返回空指针值。 int n; double *data; ... scanf(%d, n); data=(double*)malloc(n*sizeof(double)); if (data == NULL) { .... /* 分配未完成时的处理 */ } ..data[i]..*(data+j)../*正常处理*/ malloc的返回值(void*)应通过类型强制转为特定指针类型后赋给指针变量。 使用注意事项: 分配存储块大小应该用sizeof计算 动态分配必

文档评论(0)

1亿VIP精品文档

相关文档