请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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

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

正在回答 回答被采纳积分+3

1回答

bennyhuo 2022-04-09 05:51:07

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

0 回复 有任何疑惑可以回复我~
  • 提问者 完整的柠檬 #1
    谢谢老师,感受到了c语言的强大
    回复 有任何疑惑可以回复我~ 2022-04-09 19:20:02
  • 【C 结构体中定义长度为 0 的数组有什么深意?-哔哩哔哩】 https://b23.tv/MUM9SqR
    回复 有任何疑惑可以回复我~ 2022-04-09 21:00:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信