gpt4 book ai didi

c - 将内存分配给指向结构的指针

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:58 25 4
gpt4 key购买 nike

在我正在开发的程序中,我有这样的结构:

typedef struct _event {
int id;
char title[30];
char desc[60];
int state;
} event;

在这个程序的某个部分,我将使用一个需要指向这个结构的指针的函数。

void event_foo(event *e)
{
/* Something will be done on this function,
with certain parameters of the pointer to the struct are needed */
}

但是在访问这个函数之前,我需要为这个指向结构的指针分配内存。

int main()
{
event newevent;

/* In some place before invoking the function,
memory assignation is required */

event_foo(&newevent);

return 0;
}

¿有什么建议吗?

最佳答案

这个:

event newevent;

创建一个堆栈分配的 event 实例,已经为其提供了内存。此内存将一直有效,直到 newevent 超出范围。如果 event_foo() 将读取 newevent 的任何成员,而不仅仅是更新它们,那么您必须在调用 之前初始化 newevent 的成员>event_foo().

如果你声明了一个指向事件的指针:

event* newevent;

那么有必要在访问其成员之前为 newevent 分配内存:

newevent = malloc(sizeof(*newevent));

在这种情况下,newevent 的内存一直存在,直到 free(newevent) 被调用。

关于c - 将内存分配给指向结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com