IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

destructeur pas appelé ?


Sujet :

C++

  1. #21
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Sous hypothèse que la paramètre à passer à ta fonction est un pointeur vers un tableau d'unsigned short* à remplir, alors tu t'en sortirais avec un std::vector<unsigned short*>.

    Mais je doute que ce soit le cas, je pense plutôt que la fonction alloue le tableau et l'affecte au pointeur passé en paramètre. Non ?

  2. #22
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Euh... Ce n'est pas moi qui ai écrit la fonction C (sinon elle serait en C++ )...
    Je suis responsable de l'allocation du vecteur, que j'envoie en paramètre...

    Mon code (qui marche) précédent est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    unsigned short *image= new unsigned short[77120];
    int cr  = IRimages(getChocNum(), numero_camera, num_image, num_image, &image);

  3. #23
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Hmm j'ai un doute. Pourquoi la fonction demanderait-elle un pointeur sur pointeur, si le tableau n'a qu'une dimension et est déjà alloué ? Tu es sûr que ton pointeur n'est pas réaffecté dans la fonction (compare la valeur de image avant et après l'appel).

  4. #24
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Hum...
    Pour info, cette fonction est dans une DLL (plus pratique).

    A l'origine, la fonction IRimage effectuait l'allocation mais ne désallouait pas... C'était à moi (client) de désallouer le tableau!
    Mon collègue m'a expliqué qu' en /MD le tas était en commum, donc ça marchait! J'ai trouvé ça particulièrement foireux, et je lui ai donc dis que j'allais m'occuper de l'allocation.
    J'ai donc râler auprès de mon collègue qui a changé sa fonction, mais du coup pas le prototype.

    J'avais pas réfléchi, mais effectivement, la fonction serait à revoir, non?

  5. #25
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    J'avais pas réfléchi, mais effectivement, la fonction serait à revoir, non?
    Clairement...

    Mais en attendant puisque la deuxième étoile n'a plus aucune utilité, tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    std::vector<unsigned short> image(77120);
    unsigned short* image_ptr = &image[0];
     
    int cr  = IRimages(getChocNum(), numero_camera, num_image, num_image, &image_ptr);

  6. #26
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Merci Laurent !
    J'y avais pas pensé!
    Du coup, je peux laisser ça comme ça, la perte de performance n'est pas énorme? (à la "propreté près)

  7. #27
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Il n'y a aucune perte de performances.

  8. #28
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ok merci Laurent !
    (c'était pas moi l'auteur du post mais j'en ai profité un peu ! )

  9. #29
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    y a pas de soucis
    z'etes bienvenue dans mes threads

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Un destructeur qui n'est pas appelé ?
    Par souki22 dans le forum C++
    Réponses: 7
    Dernier message: 30/01/2015, 10h19
  2. Réponses: 9
    Dernier message: 07/10/2006, 10h54
  3. [destructeur] [pas appelé]
    Par Gonath dans le forum C++
    Réponses: 11
    Dernier message: 23/02/2006, 18h37
  4. [servlet][filtre] filtre qui n'est pas appelé
    Par felix79 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 29/06/2005, 20h09
  5. setTimeOut ne peu pas appeler une fonct. et appeler une var?
    Par bywazy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/06/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo