Riferimenti

di il
1 risposte

Riferimenti

Ciao a tutti spero che possiate risolvere il mio dubbio.
se io ho una funzione come questa:

int sum(int a,int b){
retun a+b;
}
allora la mia funzione quando sarà chiamata allocherà spazio per le variabili a e b,

ma se scrivo cosi:
int sum(int &a,int &b){
retun a+b;
lo spazio sarà allocato???

1 Risposte

  • Re: Riferimenti

    Ciao bisky
    Quando fai una new o una malloc viene allocato spazio nello heap, invece quando chiami una funzione i dati vengono caricati sullo stack. Si tratta di due zone di memoria differenti con gestioni differenti.

    Quando effettui il passaggio per valore carichi sullo stack le variabili (un intero occuperà 4 byte, un double 8, una struct la sua dimensione ecc.), quando effettui il passagio per riferimento carichi sullo stack l' indirizzo della variabile ovvero carichi un puntatore che occupa 4 byte. (i numeri che ho detto sono indicativi e dipendono dalla piattaforma, mi riferivo a sistemi a 32 bit).
Devi accedere o registrarti per scrivere nel forum
1 risposte