Вы возвращаете указатель на последний символ в строке (stripped++
?).
Вы выделяете один байт слишком мало (должно быть strlen(...) + 1
).
stripped = (char*)malloc(strlen(input_string)*sizeof(char)); /* Wrong. */
stripped = (char*)malloc(strlen(input_string) + 1);
/* .. */
stripped++;
/* .. */
return stripped;
Попытайтесь сохранить копию, например, original_stripped = stripped
, прежде чем начинать изменять stripped
и вернуть скопированное значение (а не увеличенное).