您查看的文章来源于http://www.oklinux.cn
动态内存的使用
上一节的方法虽然可以避免溢出的问题,但会导致数据的丢失,下面我们就来学习一种更好的方法-动态内存的使用。由于动态内存是完全由用户自行分配使用的,因此需要用到一些系统调用,下面我们就分别学习它们。
首先我们需要的是动态内存分配的系统调用calloc()函数,其函数原型为:
#include
void *malloc(size_t size);
void *calloc(size_t nmemb,size_t size);
|
函数malloc和calloc都用于分配动态内存空间,其中malloc中的参数size表示申请分配的内存空间的大小,以字节计;calloc的参数nmemb表示分配内存空间占的数据项数目,参数size表示每一个数据项的大小,以字节计。因此calloc函数分配大小为nmemb*size大小的内存空间。
calloc和malloc的最大区别在于calloc函数将初始化所分配的内存空间,把所有位置置为0。
调用成功时,它们的返回值都为被分配的内存空间的指针;调用失败时,返回值为NULL。
当对一块动态内存的使用结束后,需要手动将其释放。其中用到的系统调用为free()函数,其函数原型为:
#include
void free(void *ptr);
|
参数
ptr是指向要释放的动态内存的指针,要注意在动态内存使用完毕后释放它,以免造成内存泄漏。下面我们就具体编写一个动态内存管理的例子。
共2页: 上一页 1 [2] 下一页