malloc sur char* problème de taille avec strlen
Bonjour,
je rencontre le problème suivant :
je déclare une chaîne de caractères avec un malloc comme ceci :
Code:
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);
} |
Donc le problème est que si je regarde la taille de ma chaîne avec un printf :
Code:
1 2
|
printf("nLgName = %d\n", nLgName); |
J'obtient la valeur 3. Et si je fait maintenant :
Code:
1 2
|
printf("sizeof(*gMenu.pTmpScName) = %d\n", sizeof(*gMenu.pTmpScName)); |
La j'ai bien la taille désiré c'est à dire 17.
Donc je ne comprend pas pourquoi strlen ne me donne pas la bonne taille.