初始化C struct期望一个表达式

时间:2012-04-04 09:59:47

标签: c struct initialization

我有一个约有17个成员struct settings currentProfile的C结构,并希望将所有成员初始化为零。 (我已经尝试使用uber-correct struct语法和typedef语法)

要将所有成员设置为零,我使用currentProfile = {0}

在这一行,编译器给出了错误Expected an expression

我是否正确初始化? 感谢

2 个答案:

答案 0 :(得分:6)

您正在执行(无效)分配而不是初始化。

初始化结构对象,并将所有成员设置为0

struct settings currentProfile = {0}; 

在声明后将结构对象的所有成员设置为0

memset(&currentProfile, 0, sizeof currentProfile);

答案 1 :(得分:1)

memset(pointer_to_struct,0,size_of_struct);

#include <string.h>

struct settings currentProfile;
memset(&currentProfile, 0, sizeof(struct settings));