Bonjour,
je rencontre le problème suivant :
je déclare une chaîne de caractères avec un malloc comme ceci :
Donc le problème est que si je regarde la taille de ma chaîne avec un printf :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #define HISC_NameLg 17 struct SMenuGen { ............. char *pTmpScName; ............ }; struct SMenuGen gMenu; void mafonction(void) { u32 nLgName = 0; gMenu.pTmpScName = malloc(HISC_NameLg * sizeof(*gMenu.pTmpScName)); /*Puis je fais un strlen pour avoir la taille*/ nLgName = strlen(gMenu.pTmpScName); }
J'obtient la valeur 3. Et si je fait maintenant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 printf("nLgName = %d\n", nLgName);
La j'ai bien la taille désiré c'est à dire 17.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 printf("sizeof(*gMenu.pTmpScName) = %d\n", sizeof(*gMenu.pTmpScName));
Donc je ne comprend pas pourquoi strlen ne me donne pas la bonne taille.
Partager