C и указатель на функцию - изменения не сохраняются
У меня есть этот простой код, который, кажется, работает (я проверил с помощью отладчика), но когда выполнение функции заканчивается, строка не сохраняется в исходной переменной.
void getString(char *iText);
int main()
{
char *inputText=malloc(sizeof(char));
getString(inputText);
puts(inputText);
free(inputText);
system("pause");
return 0;
}
void getString(char *iText)
{
char c;
int i=0;
while((c=getchar()) != '\n')
{
iText = realloc(iText,sizeof(char)*(i+1));
iText[i]=c;
i++;
}
iText = realloc(iText, sizeof(char)*(i+1));
iText[i]='\0';
}
Когда этот маленький сценарий заканчивается, я вижу некоторые
ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ▲ יע` *
Если я напишу этот код в своей основной функции, он будет работать, поэтому я предполагаю, что это связано с тем, как я использую указатель в функции.