C e ponteiro em uma função - as alterações não são salvas
Eu tenho esse código simples que parece funcionar (eu verifiquei com o depurador), mas quando a execução da função termina, a seqüência de caracteres não é salva na variável original.
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';
}
Quando esse pequeno script termina, vejo alguns
ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ▲ יע` *
Se eu escrevo este código na minha função principal, está funcionando, então estou supondo que seja algo relacionado à maneira como estou usando o ponteiro na função.