Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dans quel cas est il mieux d'allouer la mémoire ...

2 réponses
Avatar
Eddahbi Karim
Bonjour/Bonsoir,

Au niveau des structures, dans quel cas est il meilleur de cr=E9er un point=
eur de la structure et d'allouer la m=E9moire =E0 ce pointeur via malloc() ?

Par exemple, quand je d=E9finis une structure, je l'utilise directement apr=
=E8s sans passer par des pointeurs (sauf passage de structure =E0 une fonct=
ion, mais je n'alloue pas la m=E9moire via malloc...).

Est-ce mal ?

Si oui, en quoi faire un malloc() serait bien ?

--=20
--
ThE_TemPLaR

2 réponses

Avatar
Emmanuel Delahaye
In 'fr.comp.lang.c', Eddahbi Karim
wrote:

Au niveau des structures, dans quel cas est il meilleur de créer un
pointeur de la structure et d'allouer la mémoire à ce pointeur via
malloc() ?


- Chaque fois qu'on a besoin de souplesse (par exemple, tableau de taille
variable, liste chainée...)
- Pour les gros objets temporaires
- Pour les objets dont la durée de vie n'est pas infinie.

Par exemple, quand je définis une structure, je l'utilise directement
après sans passer par des pointeurs (sauf passage de structure à une
fonction, mais je n'alloue pas la mémoire via malloc...).

Est-ce mal ?


Non, oui, peut être... Tout dépend de ce que tu as à faire. Dans mon boulot,
j'utilise des threads, des tempos, tout ça. Il n'est pas rare qu'une tâche
crée un objet pour un certain temps, et le jette au bout d'un moment, (ou le
refile à un copain etc...) Les situations où la mémoire dynamique est
indispensable sont innombrables.

--
-ed- [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/

Avatar
Marc Boyer
Eddahbi Karim wrote:
Bonjour/Bonsoir,

Au niveau des structures, dans quel cas est il meilleur
de créer un pointeur de la structure et d'allouer la
mémoire à ce pointeur via malloc() ?


Je dirais, chaque fois qu'on peut pas faire autrement,
plus, pour les grosses structures, chaque fois que leur
durée de vie est nettement inférieure à la durée de vie
de la variable automatique correspondante.
Je laisse de cote la question des ADT.

Par exemple, quand je définis une structure, je l'utilise
directement après sans passer par des pointeurs (sauf passage
de structure à une fonction, mais je n'alloue pas la mémoire
via malloc...).

Est-ce mal ?


Ben, pas en soit non.

Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(