Динамический масив строк на чистом C
Ключевые слова: malloc, realloc.
Вот прямо пример, не очень качественный, но все же:
www.c.happycodings.com/Data_Structures/code10.html
Тут делается realloc каждый раз, когда читаем новую строчку из stdin, а неплохо бы заранее аллоцировать память чуть бОльшими кусками, и переаллоцировать, соответственно, не каждый раз, а когда место в массиве кончилось.
pastebin.com/eFRk5LN2
Динамически саллоцированный массив строк на чистом си. Правда так делать не нужно. Нужно выделить небольшой статический буфер (массив) под строку (не более 15 символов — максимальный размер ip адреса). Считать по очереди все строки в этот буфер. Перегнать их в числовое представление ip и записать в заранее созданный / саллоцированный статический массив.