Странное имя функции "получить размер файла", которое возвращает массив символов, а не целочисленное значение
Почему функция не получает в параметр имя файла, а какую-то ссылку, которая судя по коду будет содержать количество строк в файле
Что за функция вызывается ( по имени непонятно )
В общем код нарушает все принципы программирования
PS: sizeof(str) должен по логике вернуть размер указателя ( обычно 4 )
А конструкция
str=str_ptr=...
free(str_ptr)
освобождает место и указатель str становится некорректным