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