Я нахожусь в полной потере с этим. Я не могу понять, почему это не работает. Простой массив символов с терминатором NULL - за исключением того, что когда я его выводю, он не заканчивается!Ментальный блок на завершении строки fprintf
int file_create(const char *path) {
//trying to trap situations where the path starts with /.goutputstream
char path_left_15[16];
strncpy(path_left_15, path, 15);
printf("%d\n", strlen("/.goutputstream")+1);
path_left_15[strlen("/.goutputstream")+1] = '\0';
printf("%d\n", strlen(path_left_15));
printf("path_left_15: %s\n", path_left_15);
//continue on...
}
Это мой выход:
> 16
> 16
>/.goutputstream\B7<random memory stuff>
Я не могу понять, почему это не правильно прекращения. Я попытался сделать массив длиннее, но каждый раз получаю тот же результат. Я теряю рассудок!
Кто-нибудь это видит? Благодарю.
** f ** принтf? Вы не передаете указатель файла. – Kevin
'NULL' - это макрос, который расширяется до константы * указателя null *. Предположительно, вы имеете в виду «NUL terminator» или, еще лучше, «' '\ 0'' terminator». –
Вы правы, Кевин. Я имел в виду просто printf. Хороший улов. – Alex