|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
[c] errore strtok
Salve a tutti, sto' realizzando una funzione che deve smontare una stringa in alcune sotto stringhe. Passo per parametro la stringa da smontare e i puntatori alle sottostringhe (in modo che al ritorno dalla funzione in esse ci siano i valori) e un puntatore a double per il terzo parametro.
La stringa e ha questo formato: primastringa:secondastringa:numerodouble Questo il codice della funzione: Codice:
bool_t smontaStringa(char *e, char **sorg, char **dest, double *dist) { *sorg = strtok(e, ":"); *dest = strtok(NULL, ":"); *dist = strtod(strtok(NULL, ":"), NULL); if(*dist == 0) return (FALSE); printf("test smontaStringa: %s, %s, %e", *sorg, *dest, *dist); return TRUE; } Il codice di test e' questo: Codice:
int main() { char *sorg = (char *) malloc(50); char *dest = (char *) malloc(50); double dist; char *ss = "pisa:livorno:22,4"; if(smontaStringa(ss,&sorg,&dest,&dist))printf("Corretto!\n"); else printf("passo 1: Errato!\n"); return 0; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Ci scommetto quello che vuoi che la stringa tra virgolette è in una zona di memoria non scrivibile.
Fai così: Codice:
char ss[] = "pisa:livorno:22,4":
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2009
Messaggi: 119
|
Hai vinto la scommessa!!!
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Guarda che stai creando dei memory leak
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:56.