Bonjour.
Je ne comprend pas pourquoiet
Code : Sélectionner tout - Visualiser dans une fenêtre à part char * mot = "test";ont un comportement différent
Code : Sélectionner tout - Visualiser dans une fenêtre à part char mot[]="test";
Ce code fonctionne parfaitementet affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <stdlib.h> #include<string.h> int main(void) { char mot[] = "test"; printf("%s est de longueur %lu\n", mot, strlen(mot)); printf("mot[1] : %c\n", mot[1]); mot[1] = 'o'; printf("%s\n", mot); return EXIT_SUCCESS; }Mais celui-citest est de longueur 4
mot[1] : e
tostcompile mais n'affiche que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <stdlib.h> #include<string.h> int main(void) { char *mot = "test"; printf("%s est de longueur %lu\n", mot, strlen(mot)); printf("mot[1] : %c\n", mot[1]); mot[1] = 'o'; printf("%s\n", mot); return EXIT_SUCCESS; }Pourtant, dans les deux cas, le compilateur crée un tableau de caractères de 4+1(\0) caractères ...test est de longueur 4
mot[1] : e
Partager