Проблема с длиной строки 76 - PullRequest
0 голосов
/ 13 июля 2011

Я в недоумении. Я опубликую свой код в ближайшее время ... просто слишком долго, чтобы извлекать части "тревожного" кода. Объясню мою проблему здесь: я храню строку (путь к файлу или каталогу) в массиве структуры { char *path; size_t path_len}, где path - строка, а path_en - ее длина. При вставке path_len равно 76. При извлечении из массива с strncpy длина строки становится 78 или даже простая strlen строка в массиве говорит 77.

Все остальные случаи с исходной длиной строки, меньшей 77, работают просто отлично.

Я сбит с толку.

1 Ответ

6 голосов
/ 13 июля 2011

С помощью strncpy - вы помните, что нулевое завершение завершает скопированную строку?

Strncpy не обнуляет строки, если они длиннее, чем N (N является третьим аргументом, передаваемым в strncpy)

...