bonjour,je debute en c.j'ai une question pour le malloc et le free
si je fait l'allocation dynamique de chaine de caractère dans le main avec malloc puis je passe cette chaine en paramètre d'une fonction int fonction(char*ch1,char*ch2) qui ne fait pas des modification pour la chaine mais juste elle l'utilise pour faire des calcules.alors ou je met exactement le free?? dans le main ou dans la fonction???
et est ce que l'appel successive de la fonction peut causer une faute surtous que chaine1 peut etre passé plusieurs fois en paramaètre de fonction.voila un exemple de code.
merci de me repondre.
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
20
21
22
23
24
25
26 int fonction(char*ch1,char*ch2) { int nbre=0; .. .... return(nbre); } int main() { int nb1=0,nb2=0; char*chaine1,*chaine2,*chaine3; chaine1= (char*) malloc (100 * sizeof(char)); chaine2= (char*) malloc (100 * sizeof(char)); chaine3= (char*) malloc (100 * sizeof(char)); .... .... .... nb1=fonction(chaine1,chaine2); nb2=fonction(chaine1,chaine3); ... ... return(0); }
Partager