Есть ли у кого-нибудь способ инициализировать массив int
(любой многобайтовый тип действительно прав), к ненулевому и не--1-значению просто? Под этим я имею в виду, есть ли способ сделать это в одном лайнере без необходимости делать каждый элемент отдельно:
int arr[30] = {1, 1, 1, 1, ...}; // that works, but takes too long to type
int arr[30] = {1}; // nope, that gives 1, 0, 0, 0, ...
int arr[30];
memset(arr, 1, sizeof(arr)); // That doesn't work correctly for arrays with multi-byte
// types such as int
Просто FYI, используя memset()
таким образом на статических массивах, дает:
arr[0] = 0x01010101
arr[1] = 0x01010101
arr[2] = 0x01010101
Другой вариант:
for(count = 0; count < 30; count++)
arr[count] = 1; // Yup, that does it, but it two lines.
У кого-нибудь есть другие идеи? Пока это C-код, никаких ограничений на решение. (другие библиотеки в порядке)