У меня есть массив malloc'd следующим образом:
int* buf;
buf = (int*)malloc(sizeof(int) * N)
где N - количество элементов в массиве целых чисел. Я пытаюсь установить для всех N элементов в массиве определенное значение, скажем, 4 (поэтому buf = [4, 4, 4, ..., 4]).
Для намерений и целей это в основном эксперимент, и поэтому я пытаюсь использовать только memset, без циклов . Возможно ли это?
С memset я делаю:
memset(buf, 4, sizeof(int)*N);
, который, как я предполагал, помещает 4 в массиве в памяти, но, похоже, это работает не так, как ожидалось. Предположим, что N = 20, тогда вывод:
[1,6,8,4,3,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0,0]
это не то, что я ожидал, но я заметил, что для 4-го элемента (который соответствует sizeof (int) * N) установлено значение 4. Я подумал, что memset установит все на 4, аналогично строковый регистр?