gpt4 book ai didi

c++ - 结构末尾的数组声明?

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:18 24 4
gpt4 key购买 nike

我刚刚遇到一些在 C++ 类中声明结构的代码,如下所示:

struct T 
{
int data;
T* next;
} array[0];

这种声明有什么作用?将“array[0]”放在结构定义的末尾有什么影响?

最佳答案

啊,这几乎是一个“灵活数组成员”

它在 C99 中被形式化,但它是创建动态数组的旧 C 技巧。为对象分配更多内存,您可以在数组中存储更多元素。

我认为使用特定的 0 是一种妥协,因为实际的 [] 灵活数组不在 C89 或 C++ 中。此模式的更规范的传统用法是 ...[1]

关于c++ - 结构末尾的数组声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4779779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com