グローバルとしてCで大きなnull配列が必要です。入力する以外にこれを行う方法はありますか
char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };
?
グローバル変数と静的変数は自動的にゼロに初期化されます。単に持っている場合
char ZEROARRAY[1024];
グローバルスコープでは、実行時にすべてゼロになります。しかし実際には、ローカル配列があれば、(は簡略構文です) 配列が部分的に初期化されている場合、初期化されていない要素は適切なタイプの値0を受け取ります。 次のように書くことができます。
char ZEROARRAY[1024] = {0};
コンパイラは、書き込まれていないエントリをゼロで埋めます。または、memset
を使用して、プログラムの起動時に配列を初期化できます。
memset(ZEROARRAY, 0, 1024);
変更して、すべてゼロにリセットする場合に便利です。
gcc
を使用して、配列を0以外の値に初期化する場合は、次の操作を実行できます。
int array[1024] = { [ 0 ... 1023 ] = -1 };
これは、C99のGNU拡張です Designated Initializers 。古いGCCでは、-std=gnu99
を使用してコードをコンパイルする必要がある場合があります。