Мне нужен большой пустой массив в C как глобальное. Есть ли любой способ сделать это помимо вывода
char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };
?
Глобальные и статические переменные автоматически инициализируются нулем. Если у вас просто
char ZEROARRAY[1024];
в глобальной области видимости, во время выполнения все будут нули. Но на самом деле - это сокращенный синтаксис , если у вас был локальный массив. Если массив частично инициализирован, неинициализированные элементы получают значение 0 соответствующего типа. Вы можете написать:
char ZEROARRAY[1024] = {0};
Компилятор заполняет неписанные записи нулями. В качестве альтернативы вы можете использовать memset
для инициализации массива при запуске программы:
memset(ZEROARRAY, 0, 1024);
Это было бы полезно, если бы вы изменили его и захотели вернуть все нули.