C und Zeiger in einer Funktion - Änderungen werden nicht gespeichert

Ich habe diesen einfachen Code, der zu funktionieren scheint (ich habe ihn mit dem Debugger überprüft), aber wenn die Funktionsausführung endet, wird der String nicht in der ursprünglichen Variablen gespeichert.

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';
}

Wenn dieses kleine Drehbuch endet, sehe ich einige

ε ■ ε ■ ע ■ ε ε ע ע ■ ע ע ▲

Wenn ich diesen Code in meine Hauptfunktion schreibe, funktioniert er. Ich vermute also, dass er mit der Art und Weise zusammenhängt, wie ich den Zeiger in der Funktion verwende.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage