PDA

View Full Version : [C] problema crash


r3d87
18-09-2009, 10:06
tralasciando le funzioni del programma nn riesco a capire perchè la compilazione di questo programma non mi da errori ma quando lo eseguo mi crasha al termine...

:help:

#include <stdio.h>
#include <string.h>

char c, answ[40];
char *tokenPtr;
char *A[2][7]={{"a", "b","c","d","e","f","g"},
{"1","2","3","4","5","6","7"}};
int i,j;


int main()
{

printf("Inserisci la domanda...\n\n");
gets(answ);

tokenPtr = strtok(answ, " " "?" );

for(i=0;i<=2;i++){
for(j=0;i<=7;j++)
{
if (tokenPtr == A[i][j]){
printf("%s \n\n", tokenPtr);}
}
}

while (tokenPtr != NULL ) {
printf ("%s \n\n", tokenPtr);

tokenPtr=strtok(NULL," " "?" );
}



return 0;
}

Bezelis
18-09-2009, 10:21
Perché non esegui un debug?

Il problema sta qua:
if (tokenPtr == A[i][j])

technomaker
18-09-2009, 12:52
Quando crasha vuol dire che si verifica un errore in fase di runtime, un segmentation fault. Di solito è legato ad un problema di allocazione... cioè vai a leggere/scrivere cose che non esistono o che non sono nei luoghi da te indicati. E' ricorrente che accada per Array, Matrici, Liste... e ovviamente con le strighe che sono nel linguaccio C "array di caratteri".
Prova a fare delle stampe intermedie per controllare dove si chiude.
Consiglio: prova con funzioni di un livello piu basso rispetto a quelle che usi tu per manipolare le stringhe.

in bocca al lupo ;)