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 :

Problème allocation de la mémoire


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 72
    Par défaut Problème allocation de la mémoire
    Bonjour à tous
    je suis entrain de réaliser une application qui permet de lire un fichier contenant une image puis d'afficher cette dernière.
    dans mon cas je doit réserver une partie de la mémoire pour ranger les données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    uchar buffer[width * height * 4];//* 4 car le format de l'image est ARGB
    //width et height sont la longueur et la largeur de l'image
    mon code fonctionne bien pour des images de taille 720*576 par exemple mais pour des images de haute résolution telle que 1920*1080 mon application se bloque à cause de l'alloction de mémoire(uchar buffer[width * height * 4]).
    Est ce que quelqu'un peut m'aider

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    En allocation statique, tu es limité au niveau de la taille du buffer à allouer.
    Je te conseille d'utiliser une allocation dynamique (avec un new) et de ne pas oublier de désallouer quand tu ne te sers plus de ton buffer (delete [] )
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre expérimenté Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Par défaut
    Bonjour,
    Je suis d'accord pour faire de l'allocation dynamique plutôt que static.
    En revanche la class std::vector est largement plus recommandé qu'un new/delete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Par example:
    uchar buffer[width * height * 4];
    //devient
    vector<uchar> buffer(width * height * 4);
    Avec ca le reste du programme reste inchangé, et surtout, pas besoin de delete(ouf).

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2008, 23h28
  2. Problème allocation mémoire
    Par Hurin dans le forum Débuter
    Réponses: 7
    Dernier message: 04/02/2008, 23h03
  3. Problème allocation mémoire - malloc () 1Gb
    Par Gellius31 dans le forum Bibliothèque standard
    Réponses: 14
    Dernier message: 21/12/2007, 12h16
  4. Problème allocation mémoire
    Par Arnaud F. dans le forum C
    Réponses: 9
    Dernier message: 08/04/2007, 13h42
  5. problème allocation mémoire
    Par kinta dans le forum C++
    Réponses: 7
    Dernier message: 09/02/2006, 23h22

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