Как инициализировать массив к 0 в C?

Мне нужен большой пустой массив в C как глобальное. Есть ли любой способ сделать это помимо вывода

char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ };

?

149
задан Ciro Santilli 新疆改造中心法轮功六四事件 10 May 2016 в 18:51
поделиться

1 ответ

Глобальные и статические переменные автоматически инициализируются нулем. Если у вас просто

char ZEROARRAY[1024];

в глобальной области видимости, во время выполнения все будут нули. Но на самом деле - это сокращенный синтаксис , если у вас был локальный массив. Если массив частично инициализирован, неинициализированные элементы получают значение 0 соответствующего типа. Вы можете написать:

char ZEROARRAY[1024] = {0};

Компилятор заполняет неписанные записи нулями. В качестве альтернативы вы можете использовать memset для инициализации массива при запуске программы:

memset(ZEROARRAY, 0, 1024);

Это было бы полезно, если бы вы изменили его и захотели вернуть все нули.

249
ответ дан 23 November 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: