如何在C中动态添加结构体成员?

sri*_*sri 6 c struct

struct point { 
    int x;
    int y;
};

main() {
    struct point a;
    a.x = 5;
    a.y = 10;
    printf("%d %d", a.x, a.y);
}
Run Code Online (Sandbox Code Playgroud)

输出:

5 10
Run Code Online (Sandbox Code Playgroud)

在这里,如果我想动态添加一个成员(int z)int相同的结构。程序是什么?

我尝试过的:

struct point {
    int x;
    int y;
};

struct newpoint {
    struct point a;
    int z;
};
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上述步骤,通过这些步骤我们添加了一个新成员并将旧结构point添加到新结构中newpoint。但这不是我想要的,我想动态添加新成员相同的结构。我在一次采访中得到了这个问题。

Ami*_*mit 6

问你这个问题的面试官已经给你设下了陷阱。

在 C 中“动态定义结构”是不可能的。在其他语言(例如 JavaScript)中可以进行“鸭子类型”,但 C 结构是编译时定义,并且是静态的。

  • @ParhamAlvani - 这不会有帮助,因为“主”应用程序不知道“动态”结构的结构,并且无法通过标识符与其成员交互,只能通过内存偏移量,这与分配一样有用大量内存并做同样的事情。 (2认同)