我已经声明了结构
struct wnode {
char *word;
int lines[MAXLINES];
struct wnode *left;
struct wnode *right;
};
和指针
struct wnode *p;
指针被传递给函数。在该函数中,我首先使用malloc为指针分配内存。然后我想 该struct成员初始化 线 零 零出结构体成员行。
数组初始化方法将不起作用,因为它被解释为赋值:
p->lines[MAXLINES] = {0};
编译器将引发错误:
错误:“ {”令牌之前的预期表达式
最后,我只是使用for循环将lines数组清零:
for (i = 0; i < MAXLINES; i++)
p->lines[i] = 0;
有没有更好的办法?
数组不能直接分配给。您需要使用循环将所有字段设置为0,也可以使用memset
:
memset(p->lines, 0, sizeof(p->lines));
请注意,对于非字符类型,只能将所有成员设置为0。对于其他任何值,都需要循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句