• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 二维指针动态分配内存连续问题深入分析

二维指针动态分配内存连续问题深入分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了二维指针,二维指针初始化,二维数组指针,c语言二维指针,指向二维数组的指针等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
首先,小编先贴出测试代码:

如图所示,两种分配内存的方法都能正确的分配内存,但是内存分配的空间确实不一样的。
分析:
第一种分配方法:
首先,是对每一行分配,也就是 nWidth 中的每一个进行分配,所以,我们可以看到每一行的内存都是连续的,每一个都占据四个字节
但是,为nHeight分配内存的时候,是随机的进行分配内存,所以内存的位置是不确定的,所以,出现了第一种情况

第二种分配方法:
首先,同样是为 p 分配内存,现在 p 指向一个位置
但是,在第二句中,我们需要注意,是直接在 p[0] 出分配了所有需要的内存,所以,这个时候就全部分配完了,而且由于是一次性分配内存,故内存的地址肯定是连续的,运行结果也证明了这一点

释放内存的两种情况:
第一种情况由于是两次不同的分配内存,所以,在释放内存的时候,我们应选择不同的区域进行释放。
第二种情况,只是连续调用两次 malloc  ,所以,只需要连续两次调用 free 即可完成释放。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 二维指针动态分配内存连续问题深入分析

相关文章

  • 2017-05-28C语言实现清空指定文件夹中所有文件的方法
  • 2017-05-28C++对象内存分布详解(包括字节对齐和虚函数表)
  • 2017-05-28C++基于递归和非递归算法求二叉树镜像的方法
  • 2017-05-28C++实现翻转单词顺序
  • 2017-05-28详解C++循环创建多级目录及判断目录是否存在的方法
  • 2017-05-28Cocos2d-x UI开发之场景切换代码实例
  • 2017-05-28c语言可变参数实现示例
  • 2017-05-28vector, list, map在遍历时删除符合条件的元素实现方法
  • 2017-05-28新手小心:c语言中强符号与弱符号的使用
  • 2017-05-28Windows窗口消息实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 数组指针、指针数组以及二位数组的深入解析
    • C++中指针指向二维数组实例详解
    • C++实现顺序表的方法
    • WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解
    • C++Primer笔记之关联容器的使用详解
    • c++中引用和指针的区别和联系
    • 解决在Mac下直接解压C++静态库出现的问题
    • 常用排序算法的C语言版实现示例整理
    • C++对象的浅复制和深复制详解及简单实例
    • C++十六进制宏的用法详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有