free与malloc配合使用. malloc的时候,大小已经告诉系统了。

free的时候,系统会比对一下这个地址,是不是malloc申请的,如果不是,不给释放

如果是的话,系统就知道要释放多大内存,因为malloc的时候,系统有记录的。

当然了,申请的地址,也记录了的,否则,就无法比对了。

#include<stdio.h>
#include"malloc.h"
typedef int ElemType;int main(){ElemType *p = (ElemType *)malloc(sizeof(ElemType));*p = 110;printf("%d\n", *p);free(p);ElemType a = 5;ElemType *q = &a;//free(q); // q指向的内存空间不是malloc分配的,所以用free会报错. return 0;
} 
#include <stdio.h>
#include <stdlib.h>
int main()
{int *p;p=(int *)malloc(sizeof(int)*3);p[0]=1;p[1]=2;p[2]=3;p++;printf("%d\n",p[0]);//free(p);/由于p++过,已经不是malloc申请的那个地址了,因此这句运行会报错p[0]=4;free(p-1);//这句倒是正确的,因为经过p++,这里的p-1刚好是malloc申请的地址return 0;
}

C九:free与malloc相关推荐

  1. malloc 源码_【C++学习笔记(九)】之 new运算符的使用/ new 与 malloc的异同(附代码,详细注释)...

    new 运算符的使用 一. new的简单介绍: new运算符用于在堆区开辟空间,所有new出来的对象,对返回该类对象的指针. 二. new 与 malloc 的异同点: 1.malloc作用相同, m ...

  2. 十九、二叉树的最近的公共祖先

    十九.二叉树的最近的公共祖先 文章目录 十九.二叉树的最近的公共祖先 题目描述 解题思路 上机代码: 题目描述 设顺序存储的二叉树中有编号为 i 和 j 的两个结点,请设计算法求出它们最近的公共祖先结 ...

  3. 编程的《九句真言》(ZT)

    九句真言 看见了If,就想Else. 看见malloc,就去找Free. 函数调用要小心,需要看看返回值. 看到for循环,就找边界值. 看见return要注意,要去前面找资源. 看见数组把神提,问题 ...

  4. GPU(CUDA)学习日记(九)------ CUDA存储器模型

    GPU(CUDA)学习日记(九)------ CUDA存储器模型 标签: cuda存储bindingcache编程api 2012-09-27 10:53 1677人阅读 评论(1) 收藏 举报 分类 ...

  5. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上

    教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...

  6. c语言malloc calloc,C语言内存管理:malloc、calloc、free的实现

    任何一个对C稍稍有了解的人都知道malloc.calloc.free.前面两个是用户态在堆上分配一段连续(虚拟地址)的内存空间,然后可以通过free释放,但是,同时也会有很多人对其背后的实现机制不了解 ...

  7. Linux系统编程(九)线程同步

    Linux系统编程(九)线程同步 一.什么是线程同步? 二.互斥量 三.条件变量 pthread_cond_wait函数 pthread_cond_signal函数 生产者和消费者模型 一.什么是线程 ...

  8. C语言之内存管理初探:栈和堆、malloc、calloc、realloc、free

    一. 进程空间 二.进程空间图示   程序被加载到内存以后,0-4G的内存空间.这0-4G内存中的布局如下图: 三. 栈内存 1.栈存储的特点:   栈的大小并不大,他的意义并不在于存储大数据,而在于 ...

  9. SDUT-2054_数据结构实验之链表九:双向链表

    数据结构实验之链表九:双向链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 学会了单向链表,我们又多了一种解决问题的 ...

最新文章

  1. 推荐10款windows端实用软件,每一款都是精品!
  2. PCL安装与环境变量配置(Win10)
  3. 【信息安全】职业发展之惑系列之二 --- 怎样的心态才有助于职业发展
  4. 【数据结构】排序算法及优化整理
  5. android studio 错误: 找不到符号 符号: 方法 xxx() 位置: 类 xxx
  6. 单片机应用中的c语言用词注解,单片机C语言程序注解
  7. js数组 reduce函数
  8. php如何让图片自适应屏幕,css如何让图片自适应屏幕大小
  9. Gifox for Mac 1.6.0 优秀的Gif动画录制工具 破解版下载
  10. Git error : bad signature 0x00000000 fatal: index file corrupt
  11. ARM开发软件ADS教程
  12. Win32_SoundDevice 声卡 的参数说明
  13. ios swift 纯代码自定义view(控件) XYswitchView
  14. 抢票显示服务器失败是什么原因,抢票网站的手机核验失败原因
  15. 星星之火OIer:对拍
  16. 关于压缩感知的第一篇论文解析压缩感知研究新思路
  17. 彻底删除VM虚拟机手把手详细教学
  18. 机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)
  19. Android开发 系统服务,android 系统服务 开发
  20. 网络 链路层 | 以太网协议与ARP协议

热门文章

  1. java对象 Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
  2. vue2.0 项目搭建 和vue 2.0 electron 项目搭建
  3. Windows 下启动前删除Resin日志等文件的bat命令
  4. quartus中pin planner中分配引脚的对话框不见了,怎么找回(附方法)
  5. nb-iot简介【转】
  6. “极致”神话和产品观念_转自“蜗窝科技”
  7. js仿QQ中对联系人向左滑动、滑出删除按钮的操作
  8. (转)jQuery禁止右键菜单,全选
  9. jaxb和dozer简介
  10. linux命令使用全集