Setzen der Zeigerreferenz über eine Funktion

n C versuche ich, den Wert eines Zeigers zu setzen, indem ich ihn an eine Funktion sende, aber der Wert wird sich außerhalb der Funktion nicht ändern. Hier ist mein Code:

#include <stdio.h>
void foo(char* str) {

    char* new_str = malloc(100);
    memset(new_str, 0, 100);
    strcpy(new_str, (char*)"new test");

    str = new_str;
}


int main (int argc, char *argv[]) {

    char* str = malloc(100);
    memset(str, 0, 100);

    strcpy(str, (char*)"test");

    foo(str);

    printf("str = %s\n", str);
}  

Ich möchte ausdrucken:

str = new test 

Aber dieser Code wird ausgedruckt:

str = test

Jede Hilfe wird geschätzt. Danke im Voraus

Antworten auf die Frage(8)

Ihre Antwort auf die Frage