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

GTK+ avec C & C++ Discussion :

Libération de la mémoire


Sujet :

GTK+ avec C & C++

Vue hybride

bert_ Bonjour, J'ai un problème... 07/05/2007, 14h49
Franck.H Salut ! Donne le code... 07/05/2007, 15h24
bert_ voici en résumé : gint*... 07/05/2007, 15h27
Franck.H Nan mais là c'est normal... 07/05/2007, 15h29
bert_ Oups !!! J'accepte les coups... 07/05/2007, 15h31
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Par défaut
    Bonjour,

    J'ai un problème de mémoire. Dans une fonction, j'utilise la déclaration du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gint *pixels_TSV = g_malloc(l*h*sizeof(*pixels_TSV));
    À la fin cette fonction, je libère la mémoire en faisant :
    Seulement, j'ai l'impression que la mémoire n'est pas libérée ce qui me garde de la mémoire pour rien....

    Je ne comprends pas trop !!!!!

    Merci !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut !


    Donne le code complet de ta fonction s'il te plaît mais quoi qu'il en soit, après l'appel d'un g_free (ou free), la mémoire allouée est libérée !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Par défaut
    voici en résumé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    gint* RVBversTSV(GdkPixbuf *pixbuf)
    {
      guchar *pixels_RVB; 
      gint i, l, h, n;
     
      l = gdk_pixbuf_get_width(pixbuf);
      h = gdk_pixbuf_get_height(pixbuf);
      n = gdk_pixbuf_get_n_channels(pixbuf);  
     
      pixels_RVB = gdk_pixbuf_get_pixels(pixbuf);
     
      gint *pixels_TSV = g_malloc(l*h*n*sizeof(*pixels_TSV));
     
      ...
     
      ...
     
      return pixels_TSV;
     
     
      /* Libération de la mémoire allouée par g_malloc */
     
      g_free(pixels_TSV);
    }
    Merci !

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Nan mais là c'est normal alors que ca libère pas la mémoire... depuis quand une instruction après un return est exécutée ?


    Pour la peine...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Par défaut
    Oups !!! J'accepte les coups de fouets... C'est une lacune... Comment dois-je faire alors pour retourner la valeur et pour libérer la mémoire ?

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par bert_
    Oups !!! J'accepte les coups de fouets... C'est une lacune... Comment dois-je faire alors pour retourner la valeur et pour libérer la mémoire ?
    Bin tu supprime l'appel à g_free tout simplement. Je ne vois en fait pas le but de la manoeuvre, si tu retourne ce tableau c'est que forcément tu en aura besoin donc la libération ne devra se faire que lorsque tu n'en aura plus besoin autrement ce que tu fait ne sert strictement à rien !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Libération de la mémoire
    Par Premium dans le forum C
    Réponses: 4
    Dernier message: 09/08/2006, 18h15
  2. [CSV] Libération de la mémoire
    Par cedricgirard dans le forum Langage
    Réponses: 7
    Dernier message: 05/01/2006, 12h02
  3. libération de la mémoire après traitement ?
    Par isachat666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2005, 19h29
  4. [VB]Libération de la mémoire
    Par seroa dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 12/10/2005, 11h52
  5. Libération de la mémoire
    Par gibet_b dans le forum Composants VCL
    Réponses: 3
    Dernier message: 30/06/2004, 12h02

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