1 / 2
文档名称:

c语言malloc函数的使用.docx

格式:docx   大小:22KB   页数:2
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言malloc函数的使用.docx

上传人:ipod0a 2018/11/5 文件大小:22 KB

下载得到文件列表

c语言malloc函数的使用.docx

文档介绍

文档介绍:C语言malloc的使用浅谈
参考文献:C_Free API文档
在c语言的编程中常常要对内存操作,而这对不少人来说是个不简单的问题。
最近在做作业的过程中常常看到在用到存储结构的地方常常有malloc的身影,我就在想到底什么时候什么地方该用到malloc 经过在百度和狗狗的一番搜搜之后在下的愚见总结如下:
使用malloc的情况
首先说明一下,由malloc动态申请的内存空间是堆式的内存空间。
而静态的内存的空间是栈式的。有关堆栈的知识请参考其他相关资料。
大容量内存需求
,也就是利用malloc来申请内存空间。可以这么认为,如果内存过大,就会不易管理,而malloc可以说事一个专业的内存管理者,但静态的则可以当成是一个业余的。毕竟术业有专攻。
不确定内存需求
当我们需要的内存空间大小连我们自己也不知道的时候。为了不使内存空间的浪费。我们需要用到malloc函数。可以这样理解如果说静态的内存空间是一个铁盒子的话那么动态内存空间就可以看作是可伸缩的袋子,它的容量可以根据你所装物体的体积不同而定制。当然我们也可以利用静态内存,这样会有两种可能出现的结果,一是你所申请的空间不够用,程序异常。二是申请的内存过大,浪费。
备注
如何科学使用malloc
申请
calloc
语法:

#include <>
void *calloc( size_t num, size_t size );
功能: 函数返回一个指向num 数组空间,每一数组元素的大小为size。如果错误发生返回NULL。
malloc
#include <>
void *malloc( size_t size );
功能: 函数指向一个大小为size的空间,如果错误发生返回NULL。存储空间的指针必须为堆,不能是栈。这样以便以后用free函数释放空间。例如:
typedef struct data_type {
int age;
char name[20];
} data;

data *bob;
bob = (data*) malloc( sizeof(data) );
if( bob != NULL ) {
bob->age = 22;
strcpy( bob->name, "Robert" );
printf( "%s is %d years old\n", bob->name, bob->age );
}
fre