C言語で構造体をゼロ初期化する方法は?
C言語において、構造体は以下の方法でゼロ初期化できます。
- 花括号初期化子(ブレイス囲み初期化子)を使用して、すべてのメンバーを 0 に初期化できます。例:
struct MyStruct {
int num;
char character;
};
struct MyStruct myStruct = {0};
- 構造体のメンバーに逐次0を代入できるのは代入文を使用する場合です。例えば:
struct MyStruct {
int num;
char character;
};
struct MyStruct myStruct;
myStruct.num = 0;
myStruct.character = 0;
- memset関数を利用することで、構造体が占有するメモリ領域の全てのバイト値を0で初期化することができる。例えば
#include <string.h>
struct MyStruct {
int num;
char character;
};
struct MyStruct myStruct;
memset(&myStruct, 0, sizeof(struct MyStruct));
初期化の構造はゼロにしない、いくつかの一般的な方法を以下に示します。 どの方法を使用するかは、具体的状況や好みに依存します。