1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【C语言入门教程】4.7 指针的地址分配 - mallocl() free()

【C语言入门教程】4.7 指针的地址分配 - mallocl() free()

时间:2022-06-22 22:51:06

相关推荐

【C语言入门教程】4.7 指针的地址分配 - mallocl()  free()

指针变量可指向任何类型的变量,在处理过程中,指针变量指向的变量通过传递变量的地址来实现,指针变量的取值是内存的地址,这个地址应当是安全的,不可以是随意的。否则,写入内存单元的值将使得已存放的数据或程序丢失。应使用变异系统提供的标准函数来实现地址分配。

GCC编译器支持动态分配内存的函数 malloc() 和 free(),它们包含在头文件 stdlib.h 中。动态内存分配的含义是在程序执行的过程中,动态地划分内存空间供程序使用。当程序不需要使用这些内存空间,则可以将其释放。malloc() 函数的作用是向操作系统申请内存,free()函数的作用是释放所申请的内存。如下例所示:

char *pc;// 声明字符型指针变量 pcpc = malloc(50);// 在内存中为程序申请 50 字节的空间,并将首地址赋值给指针变量 pcif (pc != NULL)// 如果分配内存成功,则执行下列源代码{scanf("%49s", pc);// 从键盘输入获得字符串,并保存在 malloc() 所划分的内存空间内puts(pc);// 输出字符串free(pc);// 释放 malloc() 函数所申请的内存空间pc = NULL;// 是指针指向空地址,避免再次引用所释放的内存空间}

malloc() 函数的参数是长整型数值,该数值表示所申请的字节数。如果分配内存失败返回 NULL,如果成功返回所申请内存空间首地址。free() 函数必须与 malloc()配对使用,在不需要所申请的内存空间后将其释放,否则

会造成内存泄漏,影响操作系统和其他程序运行。另外需要注意的是,free()函数释放指向 NULL 的指针,或释放指向并非 malloc() 函数所申请内存空间的指针都会造成严重的程序错误。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。