0
Я копирую строку, но по какой-то причине строка копируется дважды.Не удается выяснить, почему строка копируется дважды
bool check(const char* word) {
// copy the word
char *copy = malloc(sizeof(word));
strcpy(copy, word);
printf("word %s\n", word);
printf("copy %s\n", copy);
return false;
}
Выход этой функции
word myWord
copy myWord
myWord
Если я удалить '\ п' символ в Printf для копирования, выходные изменения
word myWord
copy myWordmyWord
Я попытался прохождение этого кода с помощью отладчика, но отладчик показывает значение копии как «myWord»
Кто-нибудь может что может произойти здесь?
Это было! Я понимаю, что для нулевого символа недостаточно памяти, но как это слово печатается дважды? Согласно отладчику, слово и копия не смежны в памяти. – Hutch
, если ваш отладчик имеет окно памяти, используйте его для просмотра байтов по выделенному адресу. шаг за кодом, чтобы увидеть, как это изменится. – jdigital