initialise string
i do forget that functions can not change parameters - valgrind remembers
free all the allocated memory