我以这种方式分配字符串向量:

int number =0;

char** matrix = (char**)malloc(10);

//when I have to allocate a string, use

matrix[number] = (char*)malloc(lenght_of_string);

number++; //MAX 10

好吧,我希望当没有字符串时,向量有一个空指针,所以我可以使用calloc:

int number =0;

char** matrix = (char**)calloc(10,1);

//when I have to allocate a string, use

matrix[number] = (char*)malloc(lenght_of_string);

number++; //MAX 10

但是,如果我不想使用calloc,并使用malloc代替,将所有指针值初始化为null,为什么我在linux上获得SIGABRT信号?

nt number =0;

char** matrix = (char**)malloc(10);

for (i=0;i<10;i++)

matrix[i] = NULL;

//when I have to allocate a string, use

matrix[number] = (char*)malloc(lenght_of_string); //ERROR: SIGABRT

number++; //MAX 10

我认为在for cicle中我覆盖了一些关于内存分配的特殊信息,有人可以解释一下它发生了什么吗?

谢谢anishsane,你是对的,但有时候我也不会写10 * sizeof(char)而只有10.为什么在calloc函数中你首先传递char的大小然后是chars的数量?我在这里读到:http://www.cplusplus.com/reference/cstdlib/calloc/我应该首先传递字符数,然后传递sizeof

c语言中malloc分配矩阵,malloc,分配矩阵相关推荐

  1. C语言中malloc与free

    一.为什么c语言中要有malloc malloc就是memory allocate动态分配内存,malloc的出现时为了弥补静态内存分配的缺点,静态分配内存有如下缺点: 1.比如说,传统的一维数组,如 ...

  2. 在c语言中,可以使用动态内存分配技术定义元素个数可变的数组,C语言复制在线考题1精选.doc...

    C语言复制在线考题1精选 窗体顶端 <C语言程序设计208304>综合测试 返回测验列表 大项 1 / 2 - 单项选择题 60.0/ 70.0 分 本大题共35道,每题2分,共计70分, ...

  3. 关于C语言中的malloc和free函数的用法

    一.malloc()和free()的基本概念以及基本用法: 1.函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针 ...

  4. malloc 初始化_在C语言中,请一定记得初始化局部变量!

    C语言中,未初始化的局部变量到底是多少? 答案往往是: 与编译器有关. 可能但不保证初始化为0. 未确定. 总之,全部都是些一本正经的形而上答案,这很令人讨厌. 但凡一些人给你滔滔不绝地扯编译器,C库 ...

  5. c语言malloc作用,c语言中malloc是什么?怎么用?

    c语言中malloc是什么?怎么用? malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size); 说明: [参数说明] size 为需要分配的内存空 ...

  6. C语言中malloc函数及free函数用法(定义动态数组及释放)

    一.关于静态数组.动态数组 二.malloc()和free()的基本概念以及基本用法 1.函数定义 2.函数用法 3.关于函数使用注意事项 三.malloc()函数分配内存空间的由来 四.malloc ...

  7. c语言释放内存函数,【C语言】内存分配函数malloc/ calloc/ realloc及内存释放free

    前言: 内存区域划分与分配: 1.栈区(stack)--程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等,程序结束时由编译器自动释放. 2.堆区(heap) -- 在内存开辟另一块存储区域 ...

  8. C语言中malloc函数产生的内存泄漏问题

    一.malloc函数 使用malloc函数要注意:如果所申请的内存块大于目前堆上剩余的内存块(整块),则内存分配就会失败,函数返回值为NULL.注意这里说的是"堆上剩余内存块"不是 ...

  9. c语言中malloc、realloc与calloc 的区别以及联系

    ******************************** malloc: 向堆申请分配内存,不初始化: calloc: 向堆申请分配内存,初始化为0: realloc:向堆申请分配内存,可调整 ...

  10. 内存分配(malloc()和free())

    C语言的一个特性是接近底层,对于硬件的控制能力比其他高级动态语言要强.同时,C语言赋予程序员更大的自由度,更信任程序员.在内存的分配与释放上,我们知道非静态变量(块作用域,无链接,自动生存期)在程序进 ...

最新文章

  1. 原版豆瓣评分8.8,这本书讲透了 Rust 的灵魂
  2. 【开发环境】戴尔电脑系统重装 ( 下载 Dell OS Recovery Tool 工具 | 使用 Dell OS Recovery Tool 工具制作 U 盘系统 | 安装系统 )
  3. java获取月末日期_Java用于取得当前日期相对应的月初,月末,季初,季末,年初,年末时间详解...
  4. java mysql查询界面_Java GUI小程序 实现数据库查询界面-Go语言中文社区
  5. 树莓派3b+在tf卡配置wifi连接+ssh
  6. Nacos(一)之简介
  7. SQL 异常处理 Begin try end try begin catch end catch--转
  8. vue中$router以及$route的使用
  9. codis-server 集群安装及部署
  10. 第五团队谷歌浏览器软件与用户体验调查与分析
  11. LMAX Disruptor——一个高性能、低延迟且简单的框架
  12. 如何利用turtle制作一个滑稽表情
  13. 破解Root密码_wuli大世界_新浪博客
  14. 小鑫的算法之路:leetcode0704 二分查找
  15. Redmi AirDots只有一边有声音?? 如何进行双耳连接?
  16. 6-5 xcu-sjjg-java-List-5 有序表的插入
  17. 计算机中央处理单元是哪些,1.1.1-1.1.2 计算机系统硬件基本组成 - 中央处理单元...
  18. ODBC连接达梦数据库
  19. 那些裸辞青年,现在过得还好吗?
  20. 乖离 暗机器人_乖离性百万亚瑟王黑暗机器人打法技巧 暗马桶攻略

热门文章

  1. golang beego 自定义配置
  2. linux su、su -和sudo的区别
  3. vm虚拟机中 Kali更新后 不能自动适应窗口
  4. UNIX下C语言的图形编程-curses.h函数库
  5. Android开发中的Handler和多线程
  6. token要加编码decode吗_NLP中各种各样的编码器
  7. linux交换空间使用率,linux编程系统中交换空间的使用情况
  8. 阿里云查看mysql版本_查看mysql版本的四种方法及常用命令
  9. html读取url中文件,HTML5基础知识 - JavaScript API - File - 读取文件为DataURL
  10. python按概率输出分类结果_sklearn例程:多分类输出概率