BigMeister
15-05-2014, 13:20
Salve ragazzi,
La domanda oggi è molto semplice (per chi la sa). Quando allochiamo dinamicamente memoria, ad esempio con la malloc, e lo facciamo per una stringa, facciamo questo:
(char *)malloc(sizeof(char));
Quello che abbiamo appena fatto non vale però per tutta la stringa, ma solo per un carattere della stringa, la scrittura corretta sarebbe infatti:
(char *)malloc(lunghezza*sizeof(char));
Ora, supponiamo di voler allocare memoria non nel main, ma in una funzione,la memoria allocata dinamicamente viene vista dal main? A me risulta di no, qualcuno può spiegarmi il perchè? Oppure a chiarirmi in generale la gestione delle memorie?
Grazie
La domanda oggi è molto semplice (per chi la sa). Quando allochiamo dinamicamente memoria, ad esempio con la malloc, e lo facciamo per una stringa, facciamo questo:
(char *)malloc(sizeof(char));
Quello che abbiamo appena fatto non vale però per tutta la stringa, ma solo per un carattere della stringa, la scrittura corretta sarebbe infatti:
(char *)malloc(lunghezza*sizeof(char));
Ora, supponiamo di voler allocare memoria non nel main, ma in una funzione,la memoria allocata dinamicamente viene vista dal main? A me risulta di no, qualcuno può spiegarmi il perchè? Oppure a chiarirmi in generale la gestione delle memorie?
Grazie