在结构体中初始化数组 - C?
似乎存在内存分配问题,并认为这是因为在我的结构中,有一个指向另一个结构的数组的指针。但是,我没有初始化这个数组,也不知道如何初始化:
typedef struct listitem {
struct listitem *next;
Entry *entry;
} ListItem;
typedef struct list {
ListItem *table[100];
} List;
List *initialize(void)
{
List *tmp;
if ((tmp = (List *)malloc(sizeof(List))) == NULL)
return NULL;
return tmp;
}
希望这是有道理的,你可以提供帮助!
Seem to have a memory allocation problem and think it's because in my struct, there is a pointer to an array of another struct. However, I'm not initializing this array and not sure how:
typedef struct listitem {
struct listitem *next;
Entry *entry;
} ListItem;
typedef struct list {
ListItem *table[100];
} List;
List *initialize(void)
{
List *tmp;
if ((tmp = (List *)malloc(sizeof(List))) == NULL)
return NULL;
return tmp;
}
Hope that makes sense and you could help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将需要再次调用 malloc。
You will need to call malloc again.
只是将结构列表的内容清零。如果那是你想要的。
just zeroes the contents of your struct list. If that is what you want.