【发布时间】:2020-08-11 08:02:15
【问题描述】:
所以对于我正在做的一个项目,我有两个文件。在第一个文件中,我有一个 typedef 结构,它是一个头文件。在第二个中,我使用 malloc() 分配了内存,然后我尝试使用我在第一个文件中使用“。”的结构填充分配的内存。运算符。
不知道怎么做...
文件 1 如下所示:
typedef struct
{
/* members */
}THING;
文件 2 看起来像这样(不是主要的):
int *ptr;
ptr = malloc(sizeof(THING)); //allocates memory for THING
【问题讨论】:
-
您是否能够打开文件?
ptr = malloc(sizeof(FILE));似乎表明您在这样做时遇到了麻烦......除非您正在定义一个名为FILE的新structure。你不应该因为它已经在stdio.h中定义过(我认为)。 -
malloc 返回一个指针。您将无法使用点符号来访问
ptr变量的成员。您必须改用箭头符号->。 -
正如摆弄位所指出的那样, FILE 已在 stdio.h 中定义。而且你不需要 malloc 来使用它。
-
阅读more about C;顺便说一句,您的术语是错误的,您有两个 源文件 和技术上两个 translation units。你应该共享一个通用的
#included 头文件。
标签: c pointers memory-management struct variable-assignment