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 :

Instanciation erratique d'une classe


Sujet :

C++

  1. #1
    Membre habitué Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Points : 168
    Points
    168
    Par défaut Instanciation erratique d'une classe
    Bonjour,

    je suis débutant C++. J'ai commencé à me faire une classe qui contient pour l'instant un simple tableau. Or, quand je crée un objet de cette classe dans mon main, à certaines compilations ça marche, et à d'autres j'ai le droit à "Erreur de Segmentation".
    J'ai cherché à réduire la taille du tableau, même phénomène. J'imagine que j'ai fais une erreur, mais là je sèche...

    Merci pour votre aide!

    DrosoGenomic.hpp
    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
     
    #include <stdio.h>
    #include <string.h>
     
    class DrosoGenomicExperiment {
    public:
     
        float chr2L[23011544];
        //float chr2R[21146708];
        //float chr3L[24543557];
        //float chr3R[27905053];
        //float chr4[1351857];
        //float chrU[10049037];
        //float chrX[22422827];
        //char * name;
    };
    créée avec DrosoGenomic.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "DrosoGenomic.hpp"
    et mon fichier contenant le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include "DrosoGenomic.hpp"
    #include <iostream>
     
    using namespace std;  
     
    int main(){
        DrosoGenomicExperiment x ;
        //DrosoGenomicExperiment y ;
        //DrosoGenomicExperiment z ;
     
        cout << "OK\n";
        return 1;
    }

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Avec une taille pareille, tu risque fort le débordement de pile.
    La pile ne fait que 1Mo sous Windows avec Visual (et peut-être moins avec MinGW), alors que ton tableau fait au minimum 87.78 Mo!

    Je te conseille d'utiliser la classe std::vector, qui alloue son tableau sur le tas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre habitué Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Points : 168
    Points
    168
    Par défaut
    D'accord, j'avais peur que ce soit cela effectivement.
    Merci beaucoup pour ton conseil

  4. #4
    Membre habitué Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Points : 168
    Points
    168
    Par défaut
    Effectivement je me retrouve avec le même problème lorsque je compile sous une console.
    Comment peut on faire pour demander au compilateur de pousser l'utilisation des ressources?

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    La pile n'est pas faite pour être surchargée ainsi.
    Utilise plutôt le tas...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre habitué Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Points : 168
    Points
    168
    Par défaut
    oui je reconnais avoir été bourrin sur ce coup là!
    Merci encore!

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

Discussions similaires

  1. C++ builder prb d instanciation dynamique d une class
    Par roindesbois dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/01/2014, 20h58
  2. Réponses: 2
    Dernier message: 05/12/2013, 12h15
  3. Instanciation dynamique d'une classe
    Par larnin_ dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2013, 16h24
  4. Réponses: 9
    Dernier message: 15/02/2013, 23h27
  5. Instancier en MXML une classe AS
    Par Devil Shark dans le forum Flex
    Réponses: 5
    Dernier message: 16/01/2009, 10h42

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