PDA

Visualizza la versione completa : Dubbio puntatori [C++]


00disaster00
28-01-2013, 19:20
Salve ragazzi, mi è venuto un dubbio un po' strano, cioè:


#include <iostream>
using std::cout;
using std::endl;

int main()
{
int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

char* p=(char*)&a[5];
cout<<*p<<endl;
system("PAUSE");
return 0;
}


Se nella riga char* p=(char*)&a[5]; no considero &, che differenza c'e? Se nessuna mi potreste spiegarmi il motivo?
L'"effetto collaterale" è lo stesso.
Ringrazio tutti.
--

Scara95
28-01-2013, 20:23
Con & ottieni l'indirizzo di a[5] e quindi p conterrà l'indirizzo di questo, senza conterrà il valore di a[5] perciò, quando andrai a deferenziare il puntatore non otterrai a[5] ma un valore indefinito, quello all'indirizzo 6 (a[5] = 6)

oregon
28-01-2013, 20:56
Originariamente inviato da 00disaster00

L'"effetto collaterale" è lo stesso.



In che senso? Ovviamente avrai un errore di "access violation" (segmentation) ... se ti va bene.

Loading