Eventuali duplicati:
strtok wont accept: char *strstrtok - array di caratteri rispetto puntatore char
Quando si utilizza la funzione di strtok
, utilizzando un char *
invece di un char []
risultati in un errore di segmentazione.
Questo viene eseguito correttamente:
char string[] = "hello world";
char *result = strtok(string, " ");
Questo causa un errore di segmentazione:
char *string = "hello world";
char *result = strtok(string, " ");
Qualcuno può spiegare che cosa provoca questa differenza di comportamento?
Molte buone risposte, ma ho trovato questo l'esempio più chiaro del problema fondamentale. –
+1 spiegazione eccellente –