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.

questionAnswers(1)

yourAnswerToTheQuestion