Bonjour à tous,
J'ai écrit une fonction char * str_ext(char *ch, int start, int end) qui extrait une sous chaine de la chaine d'origine selon les indices. La fonction retourne la sous chaine. J'utilise l'allocation dynamique avec malloc mais je suis obligé de ne pas faire de free() dans ma fonction, je laisse ça à l'utilisateur de ma fonction (chose que j'aime pas trop).
Pour ce souci, je me demande :
Si l'utilisateur utilise la fonction de la manière suivante,
est-ce qu'on doit faire un free() aussi? si oui comment?
Rq: admettons que s1 est toujours suffisamment grande pour accueillir la sous chaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char *ch = "Bonjour à tous !"; char s1[255]=""; strcpy(s1,str_ext(ch,0,6));
au lieu de :
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part s1 = str_ext(ch,0,6);
zentaf.
Partager