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 :

Utilisation de la mémoire vive par un programme


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Par défaut Utilisation de la mémoire vive par un programme
    Salut!

    J'utilise Dev C++ 4.9 et je voulais savoir si le compilateur limitait la quantité de mémoire vive utilisée par le programme, et dans pareil cas, si l'on pouvait la modifier cette quantité.

    Si DevC++ ne le pemet pas, est ce qu'un autre compilateur le permet?

    Je demande tout ceci parce que j'ai de sérieux problèmes d'allocation de mémoire , allocation que je provoque grâce à des appels à "new". J'attrape les erreurs avec des try{} et des catch{} associés.
    Les allocations ressemblent à la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        try
        {
          visible_cubes = new CList<int>* [n*p*h];
        }
        catch(exception &exc)
        {
          Erreur(  exc.what()  );
        }
    D'autre part, le programme quitte à cette erreur sans bien m'exécuter ma fonction nommée "Erreur()". Il est vrai que mes allocations sont importantes et c'est pour cela que je me suis demandé si le compilateur ne limitait pas la mémoire pouvant être utilisée.

    J'espère que vous avez compris mon problème!

    PiX


  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Il semblerait que tu n'aies pas trop compris comment s'utilise CList.

    je voulais savoir si le compilateur limitait la quantité de mémoire vive
    Non.
    C'est le système qui s'occupe de cette gestion et ceci à l'execution.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 15
    Par défaut
    Ah, peutêtre que CList existe déjà; en réalité ici, j'ai créé CList donc j'en connais logiquement son utilisation.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    Citation Envoyé par Pixcoder
    Ah, peutêtre que CList existe déjà; en réalité ici, j'ai créé CList donc j'en connais logiquement son utilisation.
    Dans ce cas si le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
    {
        visible_cubes = new CList<int>* [n*p*h];
    }
    catch(exception &exc)
    lève une exception, c'est qu'il y a un bug ... dans l'implémentation de ta classe !

    Et sans savoir comment elle est implémentée, on ne pourra pas faire grand chose pour t'aider...

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    c'est qu'il y a un bug ...
    Ou alors qu'il y a eu une erreur lors de l'allocation mémoire.

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Tu es sûr de ne pas planter après le new ?
    Je ne vois pas pourquoi une allocation d'un tableau de pointeurs de Toto devrait échouer autrement qu'en levant une std::exception (std::bad_alloc pour être plus précis). (a part avec un vieux GCC qui ne lève pas d'exceptions par défaut, une inclusion de <new>, ce genre de choses)

    Ca sent plutôt le plantage dans le code qui suit qui tenterait de remplir les Toto pointés non alloués. Rajoutes donc une trace juste après ton allocation. Et vois la FAQ au sujet des tableaux à plusieurs dimensions.

    J'imagine que tu réinventes la roue parce qu'il s'agit d'un exercice ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    On pourrait avoir une idée de l'ordre de grandeur de n, p et h ?
    Ainsi qu'un sizeof(CList<int>) ?

Discussions similaires

  1. mémoire maximale utilisée par un programme
    Par xavierdestev dans le forum Débuter
    Réponses: 4
    Dernier message: 26/12/2013, 22h53
  2. Utilisation de la mémoire par mon programme
    Par Haldahir dans le forum LabVIEW
    Réponses: 1
    Dernier message: 07/10/2011, 18h41
  3. Libérer rapidement un objet utilisant bcp de mémoire vive
    Par ZebreLoup dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2010, 14h46
  4. Mémoire utilisée par un programme
    Par Deamon dans le forum Général VBA
    Réponses: 2
    Dernier message: 13/05/2009, 11h41
  5. Utilisation de la mémoire vive....
    Par Neilos dans le forum Windows
    Réponses: 9
    Dernier message: 24/11/2003, 11h09

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