begin process at 2010 02 10 14:55:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

delete et destructeurs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

delete et destructeurs

vendredi 30 septembre 2005 à 11:22:26 | delete et destructeurs

anne-lise

Bonjour,

voila j'ai un probleme que je ne peux resoudre depuis un moment deja. J'ai une fonction de ce type :
float* function(float* input1, MaClasse input2)
sachant que input1 a ete construit par new float[N] et input2 par MaClasse(). A aucun moment dans le constructeur de MaClasse ni dans les traitements qui suivent on ne fait appel a input1. Ces deux arguments sont dissocies.

Voila mon probleme, lorsque au sein de cette fonction j'appelle delete[] input1, ca appelle le destructeur de input2, hors, je ne veux pas input2 soit detruit. J'ai fait des tests, si je n'appelle pas delete[] input1, le destructeur de MaClasse n'est pas appelle...

Or, dans cette fonction, je me traite les valeurs de input2 et de input1 mais a aucun moment je ne couple les pointeurs par exemple...

Est ce que quelqu'un sait quel pourrait etre le probleme ? Quelqu'un a une idee ?

J'ai bien pense a mettre le delete en dehors de la fonction mais j'utilise cette fonction au sein d'une boucle et je l'appelle par res=function(res, input2) donc j'ai besoin de desalloue la memoire de res avant de lui en realloue une autre.

Je ne joins pas le code car il est tres long.

Merci d'avance !

Anne-Lise

vendredi 30 septembre 2005 à 15:04:15 | Re : delete et destructeurs

cosmobob

salut,
que tu appelles ou non delete[] sur input1, ton objet input2 sera détruit à la sortie de ta fonction. Quand tu passes une instance de classe par valeur, une copie locale a la fonction est effectuée, et est ensuite détruite quand ta fonction return.

Si tu veux eviter ca, tu dois passer input2 par reference.
Ex:
float* input1 = new float[10];
MaClasse input2;

function( input1, input2 );

avec function de prototype: float* function( float* input1, MaClasse& input2);
a+

vendredi 30 septembre 2005 à 15:08:21 | Re : delete et destructeurs

anne-lise

Oui merci beaucoup ! J'allais justement ecrire que j'avais trouve le probleme !
:-)
Anne-Lise



Cette discussion est classée dans : fonction, appelle, delete, input1, input2


Répondre à ce message

Sujets en rapport avec ce message

net use * /delete EN C++ [ par LeBobo ] Salut. J'ai un petit programme qui utilise la fonction : system(''net use * /delete'') ; Le problème est que mon programme à une interface graphique w APPELLE D'UNE FONCTION DONT LE NOM EST CONTENU DANS UN CHAR [ par vaughan69 ] Salut, je suis en train de développer une librairie graphique qui gere les bouttons. La strucutre du bouton contient un champs char *fonction; Ce cham Fonction dans une structure ? [ par mayti ] Bonjour, voilà j'esseye d'utiliser une fonction dans une structure pour par exemple effacer un fichier: struct FICHIER {     char *path;     sta c++ et delete [ par anne-lise ] Bonjour !voila, j'ai un probleme lorsque je veux faire des delete sur des tableauz.J'ai une fonction du type :float* function(param, int n){   float* Erreur dans l'appelle d'une fonction [ par cheval22222 ] Bonjour, je suis débutant en programmation et j'ai un problème avec mes petits programmes où je dois faire appel à une fonction quelquonque. Voici le usage de la fonction CreateSolidBrush( ) [ par floufy69100 ] Bonjours, j'ai un petit problème que je n'arrive pas à résoudre, je réussi à créer et à afficher une fenêtre windows, mais mon compilateur me dit qu'i Problème de fonction [ par edwix ] Bonjour tout le monde sa fait depuis 2 heures que je travaille sur un projet et je ne comprend pas comment faire pour affecter mes valeur par rapport OpenGL et textures [ par Jackyzgood ] Bonjour à tous ! Maintenant que je commence à être à l'aise en SDL, je me suis dis : ça pourrait être bien de passer à l'OpenGL. J'ai suivis un tuto Pb - stockage de deux valeurs dans une variable [ par lectpe ] Bonjour. J'ai créé une structure représentant une fonction mathématique dans laquelle est défini une variable "Domain" qui correspond au type de la f Ouvrir une boîte de dialogue [ par moongui ] Bonjour, je programme sous visual studio 2008. J'aimerais, lorsque je clique sur un bouton, afficher une boîte de dialogue(que j'ai déjà créée, en


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales