Если это массив значений байтов или вы хотите установить для каждого байта определенное значение, вы можете использовать memset
:
char xyzzy[100];
int plugh[40];
memset (xyzzy, 7, sizeof (xyzzy)); // all chars set to 7.
memset (plugh, 0x42, sizeof (plugh)); // all integers set to (e.g.) 0x42424242.
Другая возможность - создать шаблон правильного размера.во время инициализации (либо реальной инициализации, как указано ниже, либо в функции init
), затем вызовите memcpy
до blat (a) в реальный массив позжеdate.
static int template[] = { 1, 1, 1, 1, 1 };
int zorkmid[3];
memcpy (zorkmid, template, sizeof (zorkmid)); // ensure template is at
// least as big as zorkmid.
Этот последний метод также удобен для заполнения структур с фиксированным предварительно вычисленным значением: инициализируйте фиктивную копию с установленными обязательными полями, а затем memcpy
вместо ручной установки всех полей каждыйраз вы хотите новый экземпляр.
(a) В стороне: этимология blat
:
ЖаргонВ файле (см. глоссарий для всех определений) перечислены blat
в виде четырех метасинтаксической переменной {foo, bar, thud, blat}
или синонима blast
, смысл 1.
В свою очередь, blast
(смысл 1) определяется как синоним BLT
(это , а не сэндвич), который "относится к любой операции копирования или перемещения большого битового поля".