看到的一个有意思的结构体成员定义,想请教一下

来源:8-1 结构体【内存占用分析】

完整的柠檬

2022-04-09

老师你好,今天看代码的时候发现别人在结构体里面定义了一个没有指定长度的数组

typedef struct header {
    uint32_t status;
    uint32_t size;
    uint8_t data[]; 
} header_type;

平时见过的都是指定好大小的数组 比如说uint8_t data[32];
或者是用指针,表示一个不定长数组
想问问这个结构体里面uint8_t data[];uint8_t *data; 效果是不是一样的呢?

写回答

1回答

bennyhuo

2022-04-09

这还不一样,用的时候可以给结构体多开辟一些内存,多出来的部分就是数组的

0
2
bennyhuo
【C 结构体中定义长度为 0 的数组有什么深意?-哔哩哔哩】 https://b23.tv/MUM9SqR
2022-04-09
共2条回复

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程