gpt4 book ai didi

c - 初始化struct数组成员的最有效方法?

转载 作者:行者123 更新时间:2023-12-03 15:25:02 26 4
gpt4 key购买 nike

我已经声明了该结构

struct wnode {
char *word;
int lines[MAXLINES];
struct wnode *left;
struct wnode *right;
};
和指针
struct wnode *p;
指针被传递给函数。
在该函数中,我首先使用malloc为指针分配内存。然后,我想将结构成员 初始化为零,将结构成员 归零。
数组初始化方法将不起作用,因为它被解释为赋值:
p->lines[MAXLINES] = {0};
编译器将引发错误:

error: expected expression before '{' token


最后,我只是使用一个for循环将 数组归零:
for (i = 0; i < MAXLINES; i++)
p->lines[i] = 0;
有没有更好的办法?

最佳答案

数组不能直接分配给。您需要使用循环将所有字段设置为0,也可以使用memset:

memset(p->lines, 0, sizeof(p->lines));
请注意,对于非字符类型,只能将所有成员设置为0。对于任何其他值,则需要循环。

关于c - 初始化struct数组成员的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62782452/

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