9 правильной ширины (32 бита) не может быть надежно скопировано strcpy
.Это будет выглядеть в шестнадцатеричном виде:
00000009
Обычно это будет храниться в памяти таким образом (называется Little Endian)
09 00 00 00
Это не строка, состоящая из символов0 'и' 9 ', это четыре байта со значениями 9 и 0.
09
и первый 00
можно скопировать с помощью strcpy
, но затем strcpy
останавливается, поскольку 00
сигнализирует конец строки.Таким образом, два байта целого числа (и endingWord
) не записываются и сохраняют свое предыдущее значение.Результирующее значение не будет 9, если старшие байты отличны от нуля для начала.memcpy
может надежно копировать такие данные, включая «неконечные» нули.
Как символ, 09
будет интерпретироваться как (или записываться как) \t
(символ табуляции) вкодировка ASCII.