|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2008
Messaggi: 65
|
[C] problema crash
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...
Codice:
#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;
}
|
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Sep 2009
Messaggi: 15
|
Perché non esegui un debug?
Il problema sta qua: Codice:
if (tokenPtr == A[i][j]) Ultima modifica di Bezelis : 18-09-2009 alle 10:32. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jul 2009
Messaggi: 18
|
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 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:09.



















