Иллюстрированный самоучитель по практике программирования

Библиотека для распространения

А вот как выглядит сама функция csvgetline:

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Библиотека для распространения

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Библиотека для распространения

Поступающая строка накапливается в строке line, которая при необходимости наращивается, вызывая realloc; при каждом увеличении размер удваивается, как в параграфе 2.6. Массив sline всегда увеличивается до размера line; csvgetline вызывает split для создания в отдельном массиве field указателей на поля – этот массив также при необходимости наращивается.

Мы привыкли начинать с очень маленьких массивов и увеличивать их по потребности, чтобы иметь гарантию, что код увеличения массива был выполнен. Если выделения памяти не происходит, мы вызываем reset для восстановления глобальных значений в их первоначальное состояние, чтобы дать шанс на успех последующему вызову csvgetline:

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Библиотека для распространения

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Библиотека для распространения

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.