Liberation memoire chaine de caractere
Bonsoir a vous,
Comment libérer l'espace mémoire occupée par la chaîne de caractère res?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| char *CopieLigne (const char *s)
{
int k = 0;
char *res = malloc(sizeof(char)*strlen (s));
while (s[k]!='\n')
{
res[k] = s[k];
k++;
}
return res;
}
int main (void)
{
char *origine = "Bonjour\nComment allez vous?\n";
char *res = CopieLigne (origine);
printf("%s\n",res);
return 0;
} |
De plus valgrind me donne se message
==4725== Conditional jump or move depends on uninitialised value(s)
==4725== at 0x401E215: strlen (mc_replace_strmem.c:246)
==4725== by 0x4088134: puts (in /lib/tls/i686/cmov/libc-2.3.6.so)
==4725== by 0x8048423: main
Merci pour votre aide