c - 我在接受技术面试时被要求制作这样的结构..

标签 c malloc structure

<分区>

做一个结构体,像这样给它三个成员,

 struct student{
                 int rollno;
                 char name[10];
                 int arr[];
                }stud1, stud2;

现在给stud1 4 个分数记录,给stud2 5 个分数记录。 我告诉面试官,我们必须给数组一些大小,否则它不会被分配任何空间,否则会导致编译器错误。 他说根据 C 的新标准,这是可能的。 最后我不明白该怎么做。有人有建议吗? 我尝试执行 realloc,但我自己不确定它是否有效。

最佳答案

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

struct student *s = malloc(sizeof *s + number_of_arr_elems * sizeof s->arr[0]);

关于c - 我在接受技术面试时被要求制作这样的结构..,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609260/

相关文章:

c - 关于岗位增量

c - malloc 到 "array"指针的元素

c - realloc() 与旧大小的问题

c++ - Linux,在fork()中与另一个程序共享一个缓冲区

calloc 返回指向自身的指针

java - 结构内部的 JNA 结构

python - 如何调用需要指向具有 ctypes 的结构的指针的 c 函数?

c - 选择排序与链表的

c - gtk_widget_show_all(窗口);等待函数返回值时不起作用

c - 如何在 C 中声明足够大的缓冲区?