首页 > 其他分享 >C语言--指针与堆空间

C语言--指针与堆空间

时间:2023-02-12 23:24:03浏览次数:41  
标签:malloc -- void 申请 C语言 内存 指针

1.堆空间的本质

  --备用的“内存仓库”,以字节为单位预留的可用内存

  --程序可在需要时从“仓库”中申请使用内存(动态借)

  --当不需要再使用申请的内存时,需要及时归还(动态还)

2.void*

  --void类型时基础类型,对应的指针类型为void*

  --void*时指针类型,其指针变量能保存地址

  --但是void*指针无法获取内存中的数据(无长度信息)

  eg:int a = 0;

    int* pa = &a;

    void* pa1 = &a;

    printf("%d", *pa1);//错误

void*,不可以直接获取内存数据,void*指针可以和其他数据指针相互赋值

3.堆空间的使用

  --工具库:stdlib.h

  --申请:void* malloc(unsigned bytes)

  --归还:void free(void* p)

  eg:int* p = malloc(4);

    *p = 8;

    free(p);

小结:

  void*指针只能保存地址,无法获取内存数据

  void*指针可与其他数据指针相互赋值

  malloc申请内存后,应该判断是否申请成功

  free只能释放申请到的内存,不可以多次释放

标签:malloc,--,void,申请,C语言,内存,指针
From: https://www.cnblogs.com/ysnana/p/17114982.html

相关文章

  • 第三章 图论与搜索一
    普通DFS与BFS概述DFS:深度优先搜索(Depth-First-Search)BFS:宽度优先搜索(Breadth-First-Search)DFS和BFS的对比DFS使用栈(stack)来实现,BFS使用队列(queue)来实现DFS所需要......
  • python的几个路径 sys.argv[0],__file__,os.path.curdir
    之前写过一个关于这几个路径的帖子,找不到了,最近又因为这个路径,踩了一把坑,记录一下首先,这三个变量,都是可以用来找到当前脚本所在目录的,sys.argv是参数列表,第一个值,python......
  • E. Edge Reverse
    E.EdgeReverse思路二分建图,然后缩点。如果只有1个点入度为0,那就是满足条件的代码#include<bits/stdc++.h>usingnamespacestd;usingpii=pair<int,int>;using......
  • idea部署二手交易平台
    1.安装javajava8:https://www.aliyundrive.com/s/FmeWnLMFRD4一路默认安装即可。配置环境变量在设置里面搜索高级系统,点击查看高级系统设置。新建JAVA_HOME变量,填入j......
  • 原子操作
    概述原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomicoperation)意为“不可被中断的一个或一系列操作”,可以保证指令以原子的方式运行,即执行过程不被打断......
  • C/C++飞机订票系统[2023-02-12]
    C/C++飞机订票系统[2023-02-12]飞机订票系统1、需求分析航班信息用文件保存,因而要提供文件的输入输出操作:航班信息浏览功能需要提供显示操作;要查询航线需要提供查找功......
  • Static静态
    Static静态静态,对象层级变为了类层级,不用创建对象,直接通过类名.调用1.静态属性通常成员变量属于对象层级,每创建一个对象就会创建与之对应的成员属性,开辟内存空间。但......
  • CSS Animation
    为什么要引入CSSAnimation视觉动物怎么能止步于看静态的?人性是第一生产力关键是解放了Javascript如何完成一个简单的动画使用@keyframes结合animation来完成举......
  • 基于汉明软译码和球型译码的通信链路误码率matlab仿真
    1.算法描述       MIMO检测是简单假设检验中的经典问题[1]。最大似然(ML)检测器涉及穷举搜索,并且在最小误差联合误差的意义上是最佳检测器,用于同时检测所有符号。......
  • 第二章 数据结构一
    链表用数组模拟链表(链式向前星)分类:单链表,最主要用单链表写邻接表,用邻接表存储图或者树双链表,优化某些问题对于单链表,开2个数组val[N],nxt[N],其中val用来存每个链......