JavascriptProva

sabato 19 maggio 2012

Arrays e puntatori...

Dopo aver rinfrescato i puntatori è bene rinfrescare gli arrays.
Dichiaro un array e poi metto a video l'identificatore dell'array:
#include<stdio.h>
int mioArray[5]={1,2,3,4,5};

void main(){
 printf("%x",mioArray);
 getc(stdin);
 
}
...curando di far stampare il valore in notazione esadecimale, con l'uso dello specificatore %x nell'istruzione printf. Ottengo:
1077000






Ora vado in OllyDbg, e guardo la finestra Dump:
01077000 >01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00   ... ... ... ...
01077010  05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00   ....... ... ...
01077020 >01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00   ... ... .......
01077030 >FE FF FF FF 01 00 00 00 FF FF FF FF FF FF FF FF  þÿÿÿ ...ÿÿÿÿÿÿÿÿ
01077040  00 00 00 00 4E E6 40 BB B1 19 BF 44 00 00 00 00  ....Næ@»± ¿D....
Perfetto! Quello marcato è il mio array!
L'indirizzo di memoria al quale si trova è lo stesso risultato dato dal programma nel mettere a video l'identificatore dell'array.
Quindi l'identificatore di un array, contenendo l'indirizzo del primo elemento dell'array stesso, non è altro che un puntatore all'array!

Nessun commento:

Posta un commento