使用指针将内存分配给结构

UFC内幕

在foo.h中,我有:

struct Foo_st {
    int a;
    MyObj obj1, obj2;
};

typedef struct Foo_st* Foo;

在内部,foo.c我想为我分配空间struct,所以我尝试:

Foo foo1 = (Foo) malloc(sizeof(Foo_st));

但我得到一个错误-

未声明“ Foo_st”(此函数中的首次使用)


我究竟做错了什么?

达马克

在C中,结构名称必须以开头struct你要:

Foo foo1 = malloc(sizeof(struct Foo_st));

或者,将struct Foo_st声明替换为typedef:

typedef struct {
    int a;
    MyObj obj1, obj2;
} Foo_st;

这定义Foo_st为匿名struct类型的别名您的原始分配对帐单将生效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章