首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在一次技术面试中要求做一个这样的结构。

我在一次技术面试中要求做一个这样的结构。
EN

Stack Overflow用户
提问于 2013-10-26 16:49:37
回答 2查看 190关注 0票数 6

做一个结构然后给它三个成员,

代码语言:javascript
复制
 struct student{
                 int rollno;
                 char name[10];
                 int arr[];
                }stud1, stud2;

现在将4条标记记录给stud1,5条标记记录给stud2。我告诉面试官,我们必须给数组一定的大小,否则它不会被分配任何空间,否则会产生编译器错误。他说,根据C的新标准,这是可能的。最后,我不明白如何做it.Do,有人有建议吗?我试着做一个不动产,但我不确定它是否会起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-26 16:54:37

示例本身是错误的,因为无法声明自动对象(stud1和stud2)。但你可以写

代码语言:javascript
复制
struct student *s = malloc(sizeof *s + number_of_arr_elems * sizeof s->arr[0]);
票数 8
EN

Stack Overflow用户

发布于 2013-10-26 16:53:29

它是一个灵活的数组成员。此特性已在C99中添加。它允许结构类型的最后一个成员具有不完全数组类型。C99标准中的6.7.2.1解释了这个特性。

“作为特例,具有多个命名成员的结构的最后一个元素可能具有不完整的数组类型;这称为灵活数组成员.”

这一段的其余部分描述了它的用法。

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

https://stackoverflow.com/questions/19609260

复制
相关文章

相似问题

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