Bonjour,
il y a un truc que j aimerais qu on m expliquer sur l allocation de memoire
genre ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 char haystack[] = "This code works."; char *haystack2 = "This code dont works."; char * token; token = strtok(haystack, " "); printf("%s\n",haystack); printf("%s\n",haystack2); token = strtok(haystack2, " ");
Si je declare haystack avec un char[] aucun probleme avec strtok (ou strcpy c juste un exemple)
Par contre avec un char* ca marche pas , que fait le compilateur alors puisque je peux quand meme afficher correctement la chaine ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char *haystack2 = "This code dont works."; printf("%s\n",haystack2);
Je sais qu en faisant :
Je resoud mon probleme mais j aimerais comprendre ce qui se passe exactement au niveau du code quand je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 char string[] = "This code works"; char *haystack = NULL; char * token = NULL; haystack = (char*) malloc (sizeof(string)); strcpy(haystack,string); token = strtok(haystack, " ");qui fait que les fonctions comme strtok plante
Code : Sélectionner tout - Visualiser dans une fenêtre à part char *chaine ="quelque chose"
Merci
Partager