|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
[c] Access Violation
Ciao...
sapreste dirmi come mai, quando eseguo passo passo questo pezzo di codice mi salta fuori un errore di Access Violation? dov'è che sbaglio? Codice:
while(!feof(fPtr)){
fscanf(fPtr,"%s%s%s",data[i][0],data[i][1],data[i][2]);
i++;
si blocca appena fa la prima fscanf... il file esiste, lo apre correttamente... mah... grazie per l'aiuto Gandalf |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
dimenticavo... i è stato correttamente inizializzato a zero...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
|
il file è aperto in modalità r ??
Prova a postare tutto il codice(a meno che non sia lunghissimo) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Codice:
fPtr=fopen("multiplayer.txt","r");
if(fPtr==NULL)
printf("\nFile could not be opened\n");
else{
while(!feof(fPtr)){
m++; //nella matrice
fgets(temp,DIM,fPtr);
}
data=(char**)malloc(m*sizeof(char*));
if(data!=NULL)
for(i=0;i<m;i++)
data[i]=(char*)malloc(5*sizeof(char));
else
printf("\nNo memory available\n");
i=0;
rewind(fPtr);
while(!feof(fPtr)){
fscanf(fPtr,"%s%s%s",data[i][0],data[i][1],data[i][2]);
i++;
}
}
data è dichiarata in questo modo--> char **data; questo è quanto Gandalf |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Forse %c ?
,"%s%s%s", |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
no...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comunque sicuramente quello è sbagliato
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
|
nel debug ti da errore nella fscanf ??
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
si, appena fa la prima fscanf...
x cionci: non penso che sia sbagliato, perchè io devo immagazzinare parole intere, non singoli caratteri... o sbaglio? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
|
ma dentro il file c'è qualcosa o è vuoto?
|
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Mar 2004
Messaggi: 65
|
... sono un po' fuori allenamento ma nel %s non ci va il massimo numero di caratteri da leggere? se non inserito copia tutto fino al primo spazio ...
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
x Gogetas: sisi... c'è qualcosa nel file
x RAISE: hai perfettamente ragione, infatti io devo immagazzinare tre parole, separate da spazi in tre celle differenti Gandalf |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
|
scusa una cosa, rewind(fPtr) cosa fa?
Magari ti da un access violation perchè il puntatore al file si trova alla fine, a meno che quella rewind non porta il puntatore all'inizio... |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
esatto... rewind serve proprio a riportare il puntetore ad inizio file, dato che prima l'ho passato tutto fino in fondo...
|
|
|
|
|
|
#15 | |
|
Member
Iscritto dal: Mar 2004
Messaggi: 65
|
Quote:
|
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Noo... sono sicuro
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
data è un vettore di stringhe di 5 caratteri !!! Se te scrivi data[i][0] fai riferimento al carattere 0 dell'i-esima stringa... Se devi leggere tre parole separate da spazi è %s %s %s... Comunque ripeto...il problema è lì dove ti ho detto... |
|
|
|
|
|
|
#18 | ||
|
Senior Member
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
|
Quote:
Codice:
data=(char ***)calloc(m, sizeof(char **)); //crea una matrice dinamica
if(data!=NULL)
for(i=0;i<m;i++) {
data[i]=(char **)calloc(5, sizeof(char *));
for (x=0; x<5; x++)
data[i][x] = (char *) malloc(50); //50 è la lunghezza stringa
}
else
printf("\nNo memory available\n");
Quote:
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy. Ultima modifica di Diabolik.cub : 28-06-2004 alle 22:15. |
||
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
|
Quote:
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy. Ultima modifica di Diabolik.cub : 29-06-2004 alle 21:21. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:55.



















