给定一个结构:

typedef struct {
    char someString[9]
    int value;
} Element

一个数组:
Element elementList[5];

有没有一种简单的方法可以动态地将元素添加到列表的每个索引中?我试过创建一个函数Element,它接受列表并在那里修改它,但我更喜欢类似于Java的elementList

最佳答案

不需要,这个数组由结构实例组成。
你可以这样做,例如:

strcpy(elementList[0].someString, "foo");
elementList[0].value = 4711;

这在Java中是不可能的,因为Java中的所有内容都是引用,但是在C中可以这样做如果您想要一堆NULL-able引用,在C中可以使用指针:
Element *elementList[5]; /* An array of 5 pointers to type Element. */

然后,在访问Element之前,必须使用堆分配来确保有内存:
elementList[0] = malloc(sizeof *elementList[0]); /* This might fail! */
elementList[0]->value = 17;

关于c - 向数组添加结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35798969/

10-10 13:16