0

約 17 のメンバーを持つ C 構造体があり、struct settings currentProfileすべてのメンバーをゼロに初期化したいと考えています。(私はこれを超正確な構造体構文と typedef 構文の両方で試しました)

すべてのメンバーをゼロに設定するには、使用しますcurrentProfile = {0}

この行で、コンパイラはエラーを返しますExpected an expression

正しく初期化できていますか? ありがとう

4

2 に答える 2

6

初期化ではなく、(無効な) 割り当てを行っています。

すべてのメンバーを に設定して構造体オブジェクトを初期化するには0:

struct settings currentProfile = {0}; 

構造体オブジェクトのすべてのメンバーを0その宣言の後に設定するには:

memset(&currentProfile, 0, sizeof currentProfile);
于 2012-04-04T10:03:04.313 に答える
1

memset (pointer_to_struct, 0, size_of_struct);

#include <string.h>

struct settings currentProfile;
memset(&currentProfile, 0, sizeof(struct settings));
于 2012-04-04T10:01:06.277 に答える