详解C语言用malloc函数申请二维动态数组的实例

 更新时间:2017年10月31日 11:42:13   作者:赵子苍  
这篇文章主要介绍了详解C语言用malloc函数申请二维动态数组的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

详解C语言用malloc函数申请二维动态数组的实例

C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。

Sample one

#include <stdio.h> 
int main() 
{ 
  char * p=(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组 
  free(p); 
  return 0; 
} 

是否申请二维动态内存也如此简单呢?答案是否定的。申请二维数组有一下几种方法

Sample two

/* 申请一个5行3列的字符型数组*/ 
char **p=NULL;int i; 
p=(char ** )malloc(sizeof(char *)*5); 
for(i=0;i<5;i++) 
  p[i]=malloc(sizeof(char)*3); 

这种方式的优点是行和列都是可变的,但释放时必须释放多次,先释放p[n],在释放p

/*释放内存*/ 
for(i=0;i<5;i++) 
   free(p[i]); 
free(p); 

Sample three

/*用指向数组的指针的方式申请内存*/ 
char (*p)[3]=(char(*)[3])malloc(sizeof(char)*5*3)//p是一个指向包含3个元素的数组的指针 

这种方式分配的内存只须释放一次

free(p); 

这种方式的缺点是显而易见的,列是不可变的!

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • C++中关于std::queue 中遇到释放内存错误的问题

    C++中关于std::queue 中遇到释放内存错误的问题

    这篇文章主要介绍了std::queue中遇到释放内存错误的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 如何将编译过的C++库迅速部署在Visual Studio新项目中

    如何将编译过的C++库迅速部署在Visual Studio新项目中

    本文介绍在Visual Studio中,通过属性表,使得一个新建解决方案中的项目可以快速配置已有解决方案的项目中各类已编译好的C++第三方库的方法,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • C 语言基础教程(我的C之旅开始了)[五]

    C 语言基础教程(我的C之旅开始了)[五]

    C 语言基础教程(我的C之旅开始了)[五]...
    2007-02-02
  • C语言通过案例讲解并发编程模型

    C语言通过案例讲解并发编程模型

    所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生,下面我们根据样例来理解
    2022-04-04
  • c/c++获取系统时间函数的方法示例

    c/c++获取系统时间函数的方法示例

    这篇文章主要介绍了c/c++获取系统时间函数的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 华为云开发工具CodeArts IDE for C/C++开发使用指南

    华为云开发工具CodeArts IDE for C/C++开发使用指南

    CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务,本文主要介绍了华为云开发工具CodeArts IDE for C/C++ 开发使用指南,感兴趣的可以了解一下
    2023-08-08
  • C语言实现bmp图像对比度扩展

    C语言实现bmp图像对比度扩展

    这篇文章主要为大家详细介绍了C语言实现bmp图像对比度扩展,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • C++单例模式的懒汉模式和饿汉模式详解

    C++单例模式的懒汉模式和饿汉模式详解

    这篇文章主要为大家详细介绍了C++懒汉模式和饿汉模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 使用C语言实现交换整数的奇数位和偶数位

    使用C语言实现交换整数的奇数位和偶数位

    在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使用C语言代码实现将一个整数的奇数位和偶数位交换,需要的朋友可以参考下
    2025-03-03
  • 如何调用C标准库的exit函数详解

    如何调用C标准库的exit函数详解

    这篇文章主要给大家介绍了关于如何调用C标准库的exit函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论