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

Rispondi quotando
