Je parlais dans le cas ou tu termines l'execution...
Quand on alloue des objets, on en est responsable. Donc on les désalloue quand on ne s'en sert plus. Et si on commence à compter sur le système pour les désallouer à certains moments et pas à d'autres, alors on en vient vite à ce genre de réflexions : "de toute façon j'ai 256Mo de RAM, je peux la pourrir comme je veux, mon système va tout libérer quand je vais quitter". Et ce qui devait arriver arrive, on prend l'habitude de ne plus désallouer du tout.
C'est sur que c'est tres grave le delete manquant dans un espace d'adressage qui va etre detruit dans la seconde :-)
Oui parce que delete ne fait pas que désallouer la mémoire, en appelant le constructeur il peut faire tout un tas de choses assez indispensables. Tu serais content si ton logger, une fois planté, ne fait pas de fflush(logfile), et que donc tu ne puisses pas retrouver l'origine du plantage car les derniers logs n'apparaîtraient pas dans le fichier ? Après tout, le système désalloue la mémoire c'est bien connu.
Et que dire de ceux qui ont l'habitude de coder comme ça (c'est-à-dire comme des porcs n'ayont pas peur des mots) et qui se retrouvent subitement à travailler sur un autre système, qui, lui, ne désalloue pas la mémoire automatiquement ? Je mantiens donc : ne pas désallouer la mémoire est une mauvaise habitude.
[^] # Re: Mauvais débat.
Posté par Florent C. . En réponse au journal La mémoire ? On s'en fout !. Évalué à 3.
Quand on alloue des objets, on en est responsable. Donc on les désalloue quand on ne s'en sert plus. Et si on commence à compter sur le système pour les désallouer à certains moments et pas à d'autres, alors on en vient vite à ce genre de réflexions : "de toute façon j'ai 256Mo de RAM, je peux la pourrir comme je veux, mon système va tout libérer quand je vais quitter". Et ce qui devait arriver arrive, on prend l'habitude de ne plus désallouer du tout.
C'est sur que c'est tres grave le delete manquant dans un espace d'adressage qui va etre detruit dans la seconde :-)
Oui parce que delete ne fait pas que désallouer la mémoire, en appelant le constructeur il peut faire tout un tas de choses assez indispensables. Tu serais content si ton logger, une fois planté, ne fait pas de fflush(logfile), et que donc tu ne puisses pas retrouver l'origine du plantage car les derniers logs n'apparaîtraient pas dans le fichier ? Après tout, le système désalloue la mémoire c'est bien connu.
Et que dire de ceux qui ont l'habitude de coder comme ça (c'est-à-dire comme des porcs n'ayont pas peur des mots) et qui se retrouvent subitement à travailler sur un autre système, qui, lui, ne désalloue pas la mémoire automatiquement ? Je mantiens donc : ne pas désallouer la mémoire est une mauvaise habitude.