LINUX.ORG.RU

getline


0

0

В каком-то описании прочитал:

> Если Вы устанавливаете *lineptr как пустой указатель, и обнуляете
> *n, перед обращением, то getline, зарезервирует начальный буфер для
> Вас, вызывая malloc.

Вот, к примеру, я выделил сам 20 байт и вызвал getline. Пользователь ввел 5 символов и оказалось занято всего 7 байт (строка + '\n' + '\0'). 13 свободны. А если я не буду выделять эти 20 байт а передам 0 и NULL, то будет ли так, что память не останется лишней? Или в таком случае getline выделит свое определенное количество байт (10, к примеру) и все будет почти также. Т.е. все равно место лишнее останется?

Буду благодарен за разъяснение...

★★★★★

без разницы. если ты не выделил память, за тебя это сделает getline. и выделит сколько, сколько указано в параметре n (размер)

ananas ★★★★★
()
Ответ на: комментарий от ananas

Видимо, я плохо изложил свою мысль или Вы меня не поняли. Я спрашивал про тот вариант, когда n=0 и адрес, указывающий на выделенную память равен NULL. Тогда getline сама выделяет память...

Я вроде разобрался: если так сделать, а потом распечатать n, то оно будет равно 120 Т.е. если программер не выделит сам, то за него выделиттся минимум 120... Вроде так..

php-coder ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.