|
|||||||
|
|
|
![]() |
|
|
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: 16:45.




















