zoukankan      html  css  js  c++  java
  • 【C语言入门教程】4.7 指针的地址分配

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

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

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

    malloc() 函数的参数是长整型数值,该数值表示所申请的字节数。如果分配内存失败返回 NULL,如果成功返回所申请内存空间首地址。free() 函数必须与 malloc() 配对使用,在不需要所申请的内存空间后将其释放,否则
    会造成内存泄漏,影响操作系统和其他程序运行。另外需要注意的是,free()函数释放指向 NULL 的指针,或释放指向并非 malloc() 函数所申请内存空间的指针都会造成严重的程序错误。

  • 相关阅读:
    py 中反射的基本应用和总结
    py内置函数
    py 中 函数基础
    tomcat用户管理权限(即访问到tomcat时可进行配置管理)
    py 中对接口数据的简单分析处理
    py中的 字典‘排序 ' 方法-lambda
    py 中 dict字典常用操作
    py 中元组tuple 常用操作
    py 中 list列表常用操作
    py中 字符串常用操作
  • 原文地址:https://www.cnblogs.com/52php/p/5681346.html
Copyright © 2011-2022 走看看