Как посчитать строки в динамическом массиве?
printf("%d", len_text);
Радостно выведет значение указателя на функцию len_text. Функции вызывать надо.
Также огромное количество выделений памяти. Код можно назвать Изнасилование кучи
Так вроде бы код работает.
p.s. Автор, зачем вы используете конструкции вида *(text + i)? Это абсолютно тоже самое, что и text[i].