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

Sample one

#include

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语言动态申请函数,C语言用malloc函数申请二维动态数组相关推荐

  1. Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组、split函数水平(按列)拆分二维numpy数组

    Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组.split函数水平(按列)拆分二维numpy数组 目 ...

  2. c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

    详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...

  3. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

  4. c 语言定义2维字符串数组赋值,二维数组赋值字符串 c 语言 二维字符串数组赋值问题...

    C语言中二维字符数组应该怎样赋值? c语言二维数组如何定义字符串????急... 二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小]; 例如:char c[3][10]; //定义 ...

  5. 二维数组传入函数_C++二维动态数组memset()函数初始化

    来源:https://blog.csdn.net/longhopefor/article/details/20994919 先说说memset函数: void *memset(void *s,int ...

  6. C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果。

    /*C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果.*/#include <stdio.h> #include <conio.h& ...

  7. c语言二维数组输入数据,c语言编写程序,把下面的数据输入到一个二维数组中:...

    c语言编写程序,把下面的数据输入到一个二维数组中: 答案:3  信息版本:手机版 解决时间 2019-10-07 01:08 已解决 2019-10-06 03:19 1. 编写程序,把下面的数据输入 ...

  8. C语言二维字符数组详解

    二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串. 二维字符数组的定义 二维字符数组的定义格式为: char 数组名[第一维大小][第二维大小]; 如: char ...

  9. 【C语言】动态分配二维字符串数组

    动态分配一个二维字符串数组 (1) 分配可能不连续的内存 申请 char**pps8Output = (char **) malloc(n * sizeof(char *)); 对于pps8Outpu ...

最新文章

  1. LINUX内核分析第二周学习总结——操作系统是如何工作的
  2. HTTP协议详解 转自小坦克
  3. 制作精美的网站首页模板应该如何操作?
  4. 【转】OpenCV里IplImage数据结构极易出错的问题,IplImage和单字节char*的相互转换
  5. debian linux系统下载工具,Debian For Linux
  6. luoguP3690 【模板】Link Cut Tree (动态树)[LCT]
  7. 布尔运算_3dmax教程 - 布尔运算
  8. Deploying Exchange 2010(三):在Windows Server 2008上安装Mailbox
  9. Linux学习6之软件包管理--yum在线管理
  10. 随手记_科研攻略_常犯错误
  11. modelsim教程
  12. 如何有效提升软件测试质量?
  13. JAVA控制stl文件导出图片_stl2png: 将PRO/E等3D建模工具生成的STL格式的模型文件生成缩略图的工具。特别适合体积较大的STL文件。...
  14. 安全防护重在数据 人才选拔重在心力、脑力、体力
  15. 降雪致国道315线部分道路通行受阻公路交警部门昼夜坚守
  16. Word里如何打出带有上下横杠的大写字母i
  17. 互联网技术常见简称公式总结:CPA、CPC、CPM、CVR、CTR、PV、UV、GMV定义以及相关计算公式
  18. 腾讯云数据库开源再突破:TDSQL PG版查询性能提升百倍
  19. 怎样提交新站的网址给搜索引擎?史上最新最全的网站提交地址
  20. JAVA进阶知识点总结 4-Map HashMap LinkedHashMap Map的遍历方式 斗地主案例

热门文章

  1. 三国志幻想大陆服务器维护,三国志幻想大陆8月14日更新维护公告
  2. css 图表饼图,仅具有CSS的百分比饼图
  3. linux 文件权限标识,linux文件权限学习 包括 特殊权限
  4. 每日一皮:学PHP的不容易...
  5. 头条二面:宕机后,Redis如何实现快速恢复?
  6. 服务器上装centos系统花屏,CentOS系统如何解决鼠标花屏的问题
  7. 旷视孙剑团队提出Anchor DETR:基于Transformer的目标检测新网络
  8. 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray
  9. CVPR 2021 双目图像压缩最新进展
  10. pytorch 卷积核