首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >结构末尾的数组声明?

结构末尾的数组声明?
EN

Stack Overflow用户
提问于 2011-01-24 15:58:04
回答 6查看 1.4K关注 0票数 2

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

代码语言:javascript
复制
struct T 
{
       int data;
       T* next;
} array[0];

这种声明是做什么的?将"array“放在struct定义的末尾有什么作用?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-24 16:04:03

啊,它几乎是一个“灵活的数组成员”。

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

我认为使用特定的0是一种折衷,因为实际的[]灵活阵列并不是在C89或C++中。此模式的更规范的遗留用法是...[1]

票数 3
EN

Stack Overflow用户

发布于 2011-01-24 16:01:36

这意味着,结构定义仅在该类中可用。

票数 1
EN

Stack Overflow用户

发布于 2011-01-24 16:02:53

它试图声明一个类型,T和一个大小为零的T数组。但是,在C++中声明大小为零的数组是不合法的。代码无效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4779779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档