Malloc et retour de fonction
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?
Code:
1 2 3
| char *ch = "Bonjour à tous !";
char s1[255]="";
strcpy(s1,str_ext(ch,0,6)); |
Rq: admettons que s1 est toujours suffisamment grande pour accueillir la sous chaine.
au lieu de :
Code:
s1 = str_ext(ch,0,6);
Merci,
zentaf.