Ciao , sto giocando con i puntatori ,
Ho un' array di 10 elementi non inizializzati.
Scrivo nella prima locazione ( zero).
Scrivo nella seconda locazione (uno).
Quando stampo , mi accorgo che ha solo scritto nella prima locazione (zero)
mentre la seconda non è inizializzata.
Perchè non scrive nella seconda locazione ?
int * test(void);
int main()
{
int* arr;
std::cout << "Hello World!\n";
arr = test();
for (int i = 0; i < 10; i++) {
cout << " number " << arr[i] << endl;
}
}
int* test(void) {
int arr[10]; // dichiaro un array int con 10 elementi
int *p = arr; // dichiaro un puntatore p che punta all'indice zero di arr[]
// l'asterisco si legge << il valore puntato da >>. In questo caso il valore puntato da p = arr
*p = 1; // Si legge il valore puntato da p = 1
p++; // incremento di una locazione di memoria ( dovrebbe essere arr[1] )
*p = 2; // Si legge il valore puntato da p = 2
return arr;
}