Problema puntatori

llwC
salve a tutti... Ragazzi ho un problema con i puntatori più precisamente col seguente programma:

#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 :-D

Risposte
danny.m
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;
}

Omega1
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.

nessuno.nobody
... 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 :|

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.