Problema puntatori
salve a tutti... Ragazzi ho un problema con i puntatori più precisamente col seguente programma:
quando lo vado ad eseguire mi da sempre come risultato 43?!?
Grazie mille in anticipo
#include<stdio.h> int main(void){ int a[100],*p,n; printf ("Inserisci numero:"); scanf("%d",&n); for(p=&a[0];p<&a[100;p++]){ *p=n*n } printf("Ecco la potenza del numero scelto:%d",*p); system("PAUSE"); return 0; }
quando lo vado ad eseguire mi da sempre come risultato 43?!?
Grazie mille in anticipo

Risposte
considera che non conosco bene il c... ma il codice dovrebbe essere:
#include<stdio.h> int main(void){ int a[100],n; int *p; printf("Inserisci numero:"); scanf("%d",&n); for(p=&a[0];p<&a[100];p++) *p=n*n printf("Ecco la potenza del numero scelto:%d",*p); system("PAUSE"); return 0; }
Ciao!
Il risultato finale non può essere che casuale.
Infatti, il puntatore p, alla fine del ciclo, punta in un' area di memoria al di fuori del vettore a, siccome quest' ultima è stata dichiarata come int a [ 100 ].
Essa contiene 100 interi, che vanno dalla posizione 0 alla posizione 99.
Il risultato finale non può essere che casuale.
Infatti, il puntatore p, alla fine del ciclo, punta in un' area di memoria al di fuori del vettore a, siccome quest' ultima è stata dichiarata come int a [ 100 ].
Essa contiene 100 interi, che vanno dalla posizione 0 alla posizione 99.
... Ma almeno provare a compilare i programmi e vedere che errori vi da solo in fase di compilazione?
Cioè, mancano alcuni ; alla fine delle istruzioni ad esempio
Cioè, mancano alcuni ; alla fine delle istruzioni ad esempio
