Как уже написали, segmentation fault - выход за границы отведённой памяти. Наверняка функция что-то пишет в эту строку (хотя может и читать за её границей, но менее вероятно - ноль на конце всё-таки). Рецепт прост - нужно понять, какого размера строка ожидается и выделять нужный размер по new. Частая практика - передавать сначала NULL вместо буфера, чтобы функция вернула ожидаемый нужный размер.