чтоб вспомнить. если я открою текстовый файл допустим содержащий 10 байт текста, запишу в выделенную память с помощью malloc и выведу с помощью printf("%s", text);
То при выделении памяти мне надо будет выделить на 1 байт больше для нуль байта?, т.е.
char * text_ptr = malloc(11);
иначе если 10 выделить и записать туда текст, то при выводе через %s не будет нуль байта и он попытается прочитать дальше 11 12 ...
из файла ты считываешь 10 байтов и помещаешь в область, полученную от malloc. Чтобы printf отобразил такую строку правильно, нужно чтобы она оканчивалась нулём. Таким образом, тебе изначально потребуется 11 байтов. Запроси у malloc 11 байтов.
Обсуждают сегодня