typedef struct Node {int val;int array[];
}Node;

初始错误写法

Node* n = NULL;
n = (Node*)malloc(sizeof(Node)
n->array = (int*)malloc(sizeof(iny) * 10);

正确写法

Node* n = NULL;
n = (Node*)malloc(sizeof(Node) + sizeof(int) * 10);

Node里面的array在构造的时候没有占内存,这个只是相当于一个标记以后有这个东西,因此在初始化内存的时候不能直接n->array = (int*)malloc…

只能在新建结构体的时候直接进行内存分配,进行程序员自定义内存覆盖

(Node*)malloc(sizeof(Node) + sizeof(int) * 10);

当然也可以选择第二种方式,直接用指针,直接在结构体中分配了内存

typedef struct Node {int val;int* array;
}Node;
n->array = (int*)malloc(sizeof(int) * 10);

flexible array member相关推荐

  1. 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  2. 【C语言】关于结构体最后的长度为0或1数组的思考

    需要引起注意的:ISO/IEC 9899-1999里面,这么写是非法的,这个仅仅是GNU C的扩展,gcc可以允许这一语法现象的存在.但最新的C/C++不知道是否可以,我没有测试过.(C99允许.微软 ...

  3. C发展史:KR C/C89/C99/C11 C++发展史: C++98/C++03/C++11

    C语言的发展阶段 C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言. 1967年,剑桥大学的Martin Richards对CPL语言进行了简 ...

  4. Redis 为什么用跳表而不用平衡树?

    本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skiplist展开讨论. Redis里面使用skiplist是为了实现sorted s ...

  5. c99变长数组_你学过数组,那你知道柔性数组吗?

    1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区struct max_buffer{ ...

  6. Redis 中的集合类型是怎么实现的?

    本文是<Redis内部数据结构详解>系列的第七篇.在本文中,我们围绕一个Redis的内部数据结构--intset展开讨论. Redis里面使用intset是为了实现集合(set)这种对外的 ...

  7. Redis 为什么用跳表而不用平衡树

    Redis 为什么用跳表而不用平衡树? 本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skiplist展开讨论. Redis里面使用s ...

  8. 3----结构体中使用柔性数组

    结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占 ...

  9. 妙用0元素数组 实现大小可变结构体

    妙用0元素数组 实现大小可变结构体 2008-04-06 20:31 http://hi.baidu.com/phps/blog/item/4de94efbe9595660024f56fb.html ...

最新文章

  1. 乱谈Qt事件循环嵌套
  2. java数组 序列化_程序猿的日常——Java基础之clone、序列化、字符串、数组
  3. linux 批量下载图片,Python + Excel 实现图片批量下载
  4. Docker 使用Dockerfile构建Docker(三)
  5. MYSQL性能优化分享(分库分表)
  6. 实验5 OpenGL模型视图变换
  7. Flutter Gzip 编码与解码 Dart Gzip 工具类操作
  8. 零零散散的一些知识点(二)
  9. 机器学习实战笔记1——机器学习导论
  10. 用Vue3+element-plus+express写个简单的后台管理框架
  11. Plustoken重要操盘手已被遣返回国,警方正全力侦查
  12. 三星a5000刷Android原生,三星 A5000中文Recovery刷机教程
  13. 如何找出当前活动桌面背景图像的位置/路径(Ubuntu 18.04,GNOME)?
  14. pc端微信聊天记录备份
  15. 织梦后台发布文章编辑器不显示的解决办法
  16. 利用火绒黑名单功能屏蔽风险ip地址
  17. 初学CSS动画之行走的米兔
  18. 北京社保医院选择办法-附A类医保定点医院名单
  19. 西哈努克之子柬埔寨国王西哈莫尼抵京-西哈努克-国王-抵京
  20. C—— warning: function returns address of local variable(函数参数返回错误)

热门文章

  1. Vue3的安装脚手架
  2. 金蝶二开凭证生成反写二开单据凭证号
  3. echarts雷达图详细参数配置说明
  4. 《超凡战队:能量之战》首个实机试玩放出
  5. html css 3 div并排,CSS-并排对齐两个div
  6. iOS 5.1 不完美越狱工具发布
  7. Ubuntu14.04下codeblocks手动编译配置bost_1_57_0
  8. python如何检测损坏的图像,并打印出来
  9. 清除chrome缓存和主机缓存
  10. 改造一个环节,效率就提升1倍 爱奇艺对影视后期下手了