begin process at 2012 02 09 21:00:46
  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* new et delete [ par Larwin ] bonjour a tous, je viens d'écrire une petite fonction mais celle ci me pose problème lors de la libération de variable... la voici : BOOL splitStrin 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 2,605 sec (4)

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