OVH Cloud OVH Cloud

gestion mémoire

33 réponses
Avatar
Nicolas Aunai
salut,

j'ai un petit probleme avec la gestion d'une mémoire allouée
dynamiquement dans une fonction

vect &
vect::operator+(const vect &v) const
{
vect *p = new vect;
for(unsigned int i=0; i<x.size(); i ++)
{
*(p->x[i]) = (*x[i] + *(v.x[i]));
}
return *p;
}


imaginons que 'vect' soit un objet comprenant un vector 'x' qui lui
même contient un ensemble de pointeurs sur des objets dont la nature
nous importe peut (nous savons qu'ils ont un opérateur '+' défini)

je veux définir l'opérateur '+' pour mon objet 'vect', qui devra
additionner tous les objets pointés par son vector 'x' avec ceux
pointés par un autre vect.

pour celà j'alloue dynamiquement un espace mémoire de type 'vect', puis
je boucle sur le tableau, en espérant que cette ligne a l'intérieur de
la boucle soit correcte...

puis je retourne une référence sur mon objet dynamique avec 'return
*p;'


maintenant imaginons que j'utilise cet opérateur dans une autre
fonction :


{

vect a,b,c;

a = b + c;

}


comment a la sortie de la fonction libérer la mémoire alouée ??


merci

--
Nico,
http://astrosurf.com/nicoastro
messenger : nicolas_aunai@hotmail.com

3 réponses

1 2 3 4
Avatar
google
(drkm) wrote:
Daveed Vandevoorde wrote in message :

(drkm) wrote:
Daveed Vandevoorde wrote in message

Bonjour a tous,

Je n'ai pas ecrit de francais depuis plus de quinze ans.
Mes excuses les plus Belges pour les fotes. (Ah, et mon
clavier n'a pas d'accents faciles. ;-)


Je schrijft als een Franstalige ;-)


Maar ik ben in feite oorspronkelijk Franstalig (dwz.,
m'n moedertaal is Frans niettegenstaande m'n
familienaam).


J'avais lu quelque part que tu avais étudié à la VUB. Ca plus ton
nom, difficile de ne pas tirer de conclusion :-)


Tu es bien informe ;-)

L'histoire complete est qu'a la maison nous parlions le francais
uniquement, mais que comme nous habitions dans un region
neerlandophone, l'ecole etait en neerlandais (et en effet, j'ai
etudie a la VUB). Apres cela je me suis installe au E.U.s. Je
parle encore regulierement le francais avec ma famille au
telephone (et iChat), mais rarement le neerlandais (je visite
des amis neerlandophones un fois par an).

[...]
Côté technique, je vois donc ce qui est employé. Mais j'ai du mal à
en imaginer le contexte d'utilisation exact. Je vais essayer de
trouver des exemples existants. Il me semble avoir lu un article sur
le sujet dans le CUJ d'il y a quelques mois. Et quelques
bibliothèques de chez Boost utilisent cette technique, si je ne
m'abuse. je devrais donc trouver des exemples facilement.


A l'origine, l'application principale etait les vecteurs numeriques.
Depuis, d'autres applications sont devenues populaire. En
particulier, la "Lambda Library" de Jaakko J. & Gary P. utilise
cette technique, ainsi que "Spirit" un espece de "parser generator"
(comment on dit ca en francais?). Tout deux sont des composants
de Boost.

Donc, oui, Boost a de bons exemples, mais ils ne sont pas simple.

L'article
http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.html
de Todd Veldhuizen est ce qui a rendu la technique populaire.
Je pense que c'est encore utile comme lecture, bien qu'a l'origine
il n'y avait pas de templates membres et ca complique les choses.
(Ah, je note que cette article etait apparu apres que les templates
membres futs introduit dans le language--pas de problemes alors.)

David




Avatar
usenet
Daveed Vandevoorde wrote in message :

Tu es bien informe ;-)


:-)

[...]

A l'origine, l'application principale etait les vecteurs numeriques.
Depuis, d'autres applications sont devenues populaire. En
particulier, la "Lambda Library" de Jaakko J. & Gary P. utilise
cette technique, ainsi que "Spirit" un espece de "parser generator"
(comment on dit ca en francais?). Tout deux sont des composants
de Boost.


C'était bien à Spirit que je pensais. Je pense avoir un papier
là-dessus, qui traite si je me souvient bien justement des Expression
Templates.

Donc, oui, Boost a de bons exemples, mais ils ne sont pas simple.


Bah oui ... Enfin, la Lambda Lib je sais pas, mais Spirit ...

L'article
http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.html
de Todd Veldhuizen est ce qui a rendu la technique populaire.
Je pense que c'est encore utile comme lecture, bien qu'a l'origine
il n'y avait pas de templates membres et ca complique les choses.
(Ah, je note que cette article etait apparu apres que les templates
membres futs introduit dans le language--pas de problemes alors.)


Je prend note. J'étais tombé dessus en faisant quelques recherches.
Comme il datait d'une dizaine d'année, je ne savais pas s'il était
encore d'intérêt aujourd'hui. Depuis 10 ans, on a fait un sacré bout
de chemin avec les techniques associées aux modèles.

Merci pour ces précisions. Au fait, pour "parser generator", je
dirais, du plus français au plus french :

- générateur d'analyseur syntaxique

- générateur de parseur

- parser generator

Tout ça me donne de plus en plus envie de trouver un peu de temps
pour lire ton bouquin :-)

--drkm

Avatar
Gabriel Dos Reis
(drkm) writes:

| > L'article
| > http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.html
| > de Todd Veldhuizen est ce qui a rendu la technique populaire.
| > Je pense que c'est encore utile comme lecture, bien qu'a l'origine
| > il n'y avait pas de templates membres et ca complique les choses.
| > (Ah, je note que cette article etait apparu apres que les templates
| > membres futs introduit dans le language--pas de problemes alors.)
|
| Je prend note. J'étais tombé dessus en faisant quelques recherches.
| Comme il datait d'une dizaine d'année, je ne savais pas s'il était
| encore d'intérêt aujourd'hui.

Le Professeur Edward Johnston disait "Celui qui ne connaît pas
l'histoire ne connaît rien" :-)
[ Et particulèrement pour C++, pour comprendre ce qui se passe ces
temps-ci -- tant au niveau des techniques de programmation que du
langage lui-même, il faut une certaine idée de ce qui s'est passé
avant. Non, je ne parle pas de templates, ni d'export :-) ]

| Depuis 10 ans, on a fait un sacré bout
| de chemin avec les techniques associées aux modèles.
|
| Merci pour ces précisions. Au fait, pour "parser generator", je
| dirais, du plus français au plus french :
|
| - générateur d'analyseur syntaxique

Oui.

-- Gaby
1 2 3 4