Просто первая функция считывает строки, в памяти сохраняет строки, разделяя их символом \0
После последней строки ставится еще один \0, заканчивая последовательность строк.
Павел Каптур:
да, это со времён доса
так например хранились переменные среды выполнения которые задавались в батнике например так
SET PATH=C:\DOS;C:\NORTON; ...
ASCIIZ строки, конец списка два нулевых байта - пустая строка