C语言基础知识--柔性数组

复制代码
//  柔性数组
//  柔性数组的特点:柔性数组的成员数量是动态的.
//  存在于结构体中,最后一个成员,未知的成员数量。
//  特点: 柔性数组前面至少有一个成员,sizeof 计算结构体大小,不包含柔性数组成员。
//  包含柔性数组的结构,用malloc 进行内存的动态分配,并且的内存应该大于结构的大小,以适应柔性数组的预期大小。

// struct S {
//   int a;
//   int b;
//   int c[];  // 未知大小,柔性数组成员 或者写成  int c[0];
// };
//
// int main() { 
//   struct S *ps = (struct S*)malloc(sizeof(struct S) + 10 * sizeof(int));
//   if (ps ==  NULL) {
//      perror("malloc()");
//      return 1;
//   }
//   // 访问
//   ps->a = 10;
//   ps->b = 20;
//   for (int i = 0; i < 10; i++) {
//     ps->c[i] = i+1;
//     printf("%d\n", ps->c[i]);
//   }
//   // 调整大小
//   struct S * newp = (struct S*)realloc(ps, sizeof(struct S) + 20 * sizeof(int));
//   if (newp == NULL)  // 如果调整失败为空
//   {
//      perror("realloc()");
//      newp = NULL;
//      return 1;
//   }
//   for (int i = 10; i < 20; i++) {
//     ps->c[i] = i+1;
//     printf("%d\n", ps->c[i]);
//   }
//   free(ps);
//   ps = NULL;
//   // free(newp);
//   // newp = NULL;
//   return 0;
// }
相关推荐
khalil10203 分钟前
代码随想录算法训练营Day-50 图论02 | 99.岛屿数量-深搜、99.岛屿数量-广搜 、100.岛屿的最大面积
数据结构·c++·算法·leetcode·深度优先·图论
Brilliantwxx3 分钟前
【C++】模版进阶(特化+分离编译+非类型模版参数)
开发语言·数据结构·c++·算法
Black蜡笔小新4 分钟前
自动化AI算法训练服务器DLTM企业级AI模型工作站构筑企业AI自主可控新模式
人工智能·算法·自动化
bnmoel4 分钟前
数据结构深度剖析链表全集:结构实现、分类与底层原理全解析
c语言·数据结构·算法·链表·双向链表
Languorous.4 分钟前
C++数据结构高阶|跳表(Skip List)深度解析:从原理到手写实现,面试高频考点全覆盖
数据结构·c++·list
Justice Young7 分钟前
数据结构:邻接矩阵和邻接表的区别
数据结构
童先生14 分钟前
华为云、阿里云、AWS签名机制详解! AK/SK + HMAC-SHA256 签名鉴权!
算法·阿里云·华为云·云计算
承渊政道16 分钟前
【贪心算法】(经典实战应用解析(二):最⻓递增⼦序列、递增的三元⼦序列、最⻓连续递增序列、买卖股票的最佳时机、买卖股票的最佳时机II)
数据结构·c++·学习·算法·leetcode·贪心算法·哈希算法
li星野18 分钟前
动态规划十题通关:从爬楼梯到编辑距离(Python + C++)
c++·python·学习·算法·动态规划
栈溢出了21 分钟前
GAT(Graph Attention Network)学习笔记
人工智能·深度学习·算法·机器学习