C y puntero en una función - los cambios no se guardan

Tengo este código simple que parece funcionar (lo verifiqué con el depurador) pero cuando finaliza la ejecución de la función, la cadena no se guarda en la variable 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';
}

Cuando este pequeño guión termina, veo algunos

ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ε ■ ▲ יע` *

Si escribo este código en mi función principal, está funcionando, así que supongo que es algo que ver con la forma en que uso el puntero en la función.

Respuestas a la pregunta(1)

Su respuesta a la pregunta