Salve, ho un problema riguardante l'assegnamento di un array di char passato per argomento alla funzione "test".
Praticamente la memoria viene allocata momentaneamente solo nell'esecuzione della funzione test. Infatti printf("String: %s\n", string) stampa String: test-test.
Una volta terminata la funzione test, il programma stampa "Null".

Non riesco a capirne la motivazione essendo un passaggio per riferimento ed un'allocazione dinamica della memoria.

codice:
void test(char* string);

int main() {
    
    char* string;
    
    test(string);
    
    if (string == NULL) {
        printf("Null\n");
    } else {
        printf("Not null\n");
    }
    
    return 0;
    
}


void test(char* string) {
    
    string = calloc(10, sizeof(char));
    strcpy(string, "test-test");
    printf("String: %s\n", string);
    
}