DOMANDA Allocazione Dinamica della Memoria in C

Pubblicità

JDany

Utente Attivo
Messaggi
467
Reazioni
24
Punteggio
46
Salve. Avrei bisogno di aiuto a capire una cosa che riguarda l'allocazione dinamica della memoria. Vi faccio un esempio:

int i = 100;
int *pointer = &i;
pointer = (int)malloc(sizeof(int)*100);

Non riesco a capire la parte che ho messo in grassetto.
 
Guarda la dichiarazione della funzione malloc().
Alloca il numero di byte specificato dal parametro. Quindi supponi che vuoi allocare lo spazio per 100 numeri interi: devi allocare 100 volte lo spazio occupato da un intero (quindi 100 moltiplicato per sizeof(int) ).
La funzione ritorna un puntatore generico (void) quindi devi convertire il valore di ritorno nel valore corretto (int *), come è scritto nell'esempio è sbagliato.

Le linee precedenti servono solo come un altro esempio, per mostrare un altro modo di inizializzare un puntatore, ossia assegnarli l'indirizzo di variabili.
 
Guarda la dichiarazione della funzione malloc().
Alloca il numero di byte specificato dal parametro. Quindi supponi che vuoi allocare lo spazio per 100 numeri interi: devi allocare 100 volte lo spazio occupato da un intero (quindi 100 moltiplicato per sizeof(int) ).
La funzione ritorna un puntatore generico (void) quindi devi convertire il valore di ritorno nel valore corretto (int *), come è scritto nell'esempio è sbagliato.

Le linee precedenti servono solo come un altro esempio, per mostrare un altro modo di inizializzare un puntatore, ossia assegnarli l'indirizzo di variabili.

Si hai ragione. Non mi sono accorto che non ho messo (int*).
Comunque adesso ho capito grazie :brindiamo:
 
Pubblicità
Pubblicità
Indietro
Top