bonsoir à tous,

J'ai une petite question qui me tracasse ...
Quelle méthode vous parait la plus optimisée pour la gestion de la mémoire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
char chaine[50];
 
strncpy(chaine, "un simple exemple", 50);
/* on laisse la mémoire être vidée à la terminaison du programme */
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
char *chaine;
 
chaine = strdup("un simple exemple");
free(chaine);
Ma question vous parait peut être idiote mais dans le cas du 1er exemple on alloue un espace mémoire de 50 caractères, ceci même si le mot qu'on y copie n'en fait pas autant, puis dans l'exemple 2, seul l'espace mémoire dont j'ai besoin va être alloué grâce a strdup.
Donc pour vous, quelle méthode est la plus propre, la plus optimisée en terme de gestion de la mémoire.

Merci à vous pour vos futurs explications