Добавьте \n
, когда вы printf
a result[i]
, тогда вы обнаружите, что вы на самом деле выводите 2 строки.Например, , если вы сначала strcpy(result[0], "Yes")
, а затем strcpy(result[0], "No")
, вы получите следующие выходные данные:
Да Нет
Нет
Фактически, хранилище result
выглядит следующим образом:
result [0]: ['Y'] ['e'] ['s']
result [1]: ['N'] ['o'] ['\ 0']
Вы получаете "YesNo", когда вы выводите result[0]
, поскольку двумерный массив хранится непрерывно впамять и строка заканчиваются на \0
.
. В качестве другого примера, если вы strcpy(result[0], "Hello")
, то при выводе result[0]
вы получите
Hello
и при выводе result[1]
вы получите
lo
Поскольку хранилище в result
выглядит следующим образом:
результат [0]: ['H'] ['e'] ['l']
результат [1]: ['l'] ['o']['\ 0']