Bonsoir a vous,

Comment libérer l'espace mémoire occupée par la chaîne de caractère res?

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
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