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 :

Allouer classe ayant elle aussi des allocations


Sujet :

C++

  1. #1
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut Allouer classe ayant elle aussi des allocations
    Bonjour a tous.

    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
    25
    26
    27
    28
    29
    30
    31
    32
     
    class CObjOBJ
     
    {
     
    public:
     
           CObjOBJ();
     
           void SetTexture(std::string filename);
           void SetBump(std::string filename);
     
           void Load(std::string filename);
           void Draw();
               ~CObjOBJ();
     
    private:
               void Init();
               GLuint texture,bump;
     
               ObjVertex *Vertex;
     
               ObjNormal *Normal;
     
               ObjTexCoord *TexCoord;
     
               ObjFace *Faces;
     
               int   nbVertices, nbNormals, nbTexCoords, nbFaces;
           GLuint MapList; //Display list
     
    };

    J'ai cette classe qui marche parfaitement lorsque je créer une instance statique.
    Mais lorsque que j'allou un tableau de cette classe dynamiquement j'obtient des erreurs a la fermeture de mon programme :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
     
    [XT95@localhost test]$ clear && make x
    g++ -o src/WorldManager.o -c src/WorldManager.cpp
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 5
    nbEntity : 50
    *** glibc detected *** ./Embya: free(): invalid next size (normal): 0x08776b70 ***
    ======= Backtrace: =========
    /lib/libc.so.6[0xb3609d]
    /lib/libc.so.6(cfree+0x90)[0xb396f0]
    /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0x3016871]
    /usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0x30168cd]
    ./Embya[0x8053bac]
    ./Embya[0x804cad2]
    ./Embya(__gxx_personality_v0+0x3f4)[0x804b9c8]
    /lib/libc.so.6(exit+0xe9)[0xafb939]
    ./Embya[0x804ba09]
    ./Embya[0x804bf23]
    /lib/libc.so.6(__libc_start_main+0xdc)[0xae5f2c]
    ./Embya(__gxx_personality_v0+0x26d)[0x804b841]
    ======= Memory map: ========
    00101000-00117000 r-xp 00000000 08:02 4675138    /usr/lib/libXmu.so.6.2.0
    00117000-00118000 rwxp 00016000 08:02 4675138    /usr/lib/libXmu.so.6.2.0
    0012d000-0012e000 r-xp 00000000 08:02 5625090    /usr/lib/nvidia/tls/libnvidia-tls.so.1.0.9746
    0012e000-0012f000 rwxp 00000000 08:02 5625090    /usr/lib/nvidia/tls/libnvidia-tls.so.1.0.9746
    00131000-00185000 r-xp 00000000 08:02 4673750    /usr/lib/libXt.so.6.0.0
    00185000-00189000 rwxp 00054000 08:02 4673750    /usr/lib/libXt.so.6.0.0
    001d3000-00255000 r-xp 00000000 08:02 5631359    /usr/lib/nvidia/libGL.so.1.0.9746
    00255000-00271000 rwxp 00081000 08:02 5631359    /usr/lib/nvidia/libGL.so.1.0.9746
    00271000-00272000 rwxp 00271000 00:00 0
    00274000-002f0000 r-xp 00000000 08:02 4662578    /usr/lib/libSDL-1.2.so.0.7.3
    002f0000-002f2000 rwxp 0007c000 08:02 4662578    /usr/lib/libSDL-1.2.so.0.7.3
    002f2000-0031d000 rwxp 002f2000 00:00 0
    004b0000-00586000 r-xp 00000000 08:02 4546751    /lib/libasound.so.2.0.0
    00586000-0058b000 rwxp 000d5000 08:02 4546751    /lib/libasound.so.2.0.0
    00638000-00641000 r-xp 00000000 08:02 4675106    /usr/lib/libesd.so.0.2.36
    00641000-00642000 rwxp 00009000 08:02 4675106    /usr/lib/libesd.so.0.2.36
    006c0000-006e8000 r-xp 00000000 08:02 4673756    /usr/lib/libaudiofile.so.0.0.2
    006e8000-006eb000 rwxp 00027000 08:02 4673756    /usr/lib/libaudiofile.so.0.0.2
    00902000-00958000 r-xp 00000000 08:02 4659249    /usr/lib/libtiff.so.3.8.2
    00958000-0095a000 rwxp 00056000 08:02 4659249    /usr/lib/libtiff.so.3.8.2
    00ab3000-00acc000 r-xp 00000000 08:02 4545858    /lib/ld-2.5.so
    00acc000-00acd000 r-xp 00018000 08:02 4545858    /lib/ld-2.5.so
    00acd000-00ace000 rwxp 00019000 08:02 4545858    /lib/ld-2.5.so
    00ad0000-00c07000 r-xp 00000000 08:02 4545874    /lib/libc-2.5.so
    00c07000-00c09000 r-xp 00137000 08:02 4545874    /lib/libc-2.5.so
    00c09000-00c0a000 rwxp 00139000 08:02 4545874    /lib/libc-2.5.so
    00c0a000-00c0d000 rwxp 00c0a000 00:00 0
    00c0f000-00c34000 r-xp 00000000 08:02 4546743    /lib/libm-2.5.so
    00c34000-00c35000 r-xp 00024000 08:02 4546743    /lib/libm-2.5.so
    00c35000-00c36000 rwxp 00025000 08:02 4546743    /lib/libm-2.5.so
    00c38000-00c3a000 r-xp 00000000 08:02 4545897    /lib/libdl-2.5.so
    00c3a000-00c3b000 r-xp 00001000 08:02 4545897    /lib/libdl-2.5.so
    00c3b000-00c3c000 rwxp 00002000 08:02 4545897    /lib/libdl-2.5.so
    00c3e000-00c50000 r-xp 00000000 08:02 4675085    /usr/lib/libz.so.1.2.3
    00c50000-00c51000 rwxp 00011000 08:02 4675085    /usr/lib/libz.so.1.2.3
    00c53000-00c55000 r-xp 00000000 08:02 4674904    /usr/lib/libXau.so.6.0.0
    00c55000-00c56000 rwxp 00001000 08:02 4674904    /usr/lib/libXau.so.6.0.0
    00c58000-00c5d000 r-xp 00000000 08:02 4675079    /usr/lib/libXdmcp.so.6.0.0
    00c5d000-00c5e000 rwxp 00004000 08:02 4675079    /usr/lib/libXdmcp.so.6.0.0
    00cc1000-00ccc000 r-xp 00000000 08:02 4667603    /usr/lib/libSDL_image-1.2.so.0.1.4
    00ccc000-00ccd000 rwxp 0000b000 08:02 4667603    /usr/lib/libSDL_image-1.2.so.0.1.4
    00ccd000-00cdd000 rwxp 00ccd000 00:00 0
    00cdf000-00ce4000 r-xp 00000000 08:02 4650826    /usr/lib/libSDL_ttf-2.0.so.0.6.2
    00ce4000-00ce5000 rwxp 00004000 08:02 4650826    /usr/lib/libSDL_ttf-2.0.so.0.6.2
    00d64000-00d77000 r-xp 00000000 08:02 4546741    /lib/libpthread-2.5.so
    00d77000-00d78000 r-xp 00012000 08:02 4546741    /lib/libpthread-2.5.so
    00d78000-00d79000 rwxp 00013000 08:02 4546741    /lib/libpthread-2.5.so
    00d79000-00d7b000 rwxp 00d79000 00:00 0
    00d7d000-00d8c000 r-xp 00000000 08:02 4675096    /usr/lib/libXext.so.6.4.0
    00d8c000-00d8d000 rwxp 0000e000 08:02 4675096    /usr/lib/libXext.so.6.4.0
    00d8f000-00dc4000 r-xp 00000000 08:02 4653038    /usr/lib/libGLEW.so.1.3.5
    00dc4000-00dc7000 rwxp 00035000 08:02 4653038    /usr/lib/libGLEW.so.1.3.5
    02000000-029a5000 r-xp 00000000 08:02 5625089    /usr/lib/nvidia/libGLcore.so.1.0.9746
    029a5000-029dc000 rwxp 009a4000 08:02 5625089    /usr/lib/nvidia/libGLcore.so.1.0.9746
    029dc000-029e1000 rwxp 029dc000 00:00 0
    02e02000-02e7f000 r-xp 00000000 08:02 4675089    /usr/lib/libfreetype.so.6.3.10
    02e7f000-02e82000 rwxp 0007d000 08:02 4675089    /usr/lib/libfreetype.so.6.3.10
    02e84000-02ea9000 r-xp 00000000 08:02 4675091    /usr/lib/libpng12.so.0.10.0
    02ea9000-02eaa000 rwxp 00024000 08:02 4675091    /usr/lib/libpng12.so.0.10.0
    02edd000-02ee5000 r-xp 00000000 08:02 4675092    /usr/lib/libXrender.so.1.3.0
    02ee5000-02ee6000 rwxp 00007000 08:02 4675092    /usr/lib/libXrender.so.1.3.0
    02ee8000-02eec000 r-xp 00000000 08:02 4675100    /usr/lib/libXfixes.so.3.1.0
    02eec000-02eed000 rwxp 00003000 08:02 4675100    /usr/lib/libXfixes.so.3.1.0
    02ef5000-02efe000 r-xp 00000000 08:02 4675101    /usr/lib/libXcursor.so.1.0.2
    02efe000-02eff000 rwxp 00008000 08:02 4675101    /usr/lib/libXcursor.so.1.0.2
    02f01000-02f0c000 r-xp 00000000 08:02 4546748    /lib/libgcc_s-4.1.1-20061011.so.1
    02f0c000-02f0d000 rwxp 0000a000 08:02 4546748    /lib/libgcc_s-4.1.1-20061011.so.1
    02f0f000-02f16000 r-xp 00000000 08:02 4675098    /usr/lib/libXi.so.6.0.0
    02f16000-02f17000 rwxp 00006000 08:02 4675098    /usr/lib/libXi.so.6.0.0
    02f62000-03043000 r-xp 00000000 08:02 4675086    /usr/lib/libstdc++.so.6.0.8
    03043000-03047000 r-xp 000e0000 08:02 4675086    /usr/lib/libstdc++.so.6.0.8
    03047000-03048000 rwxp 000e4000 08:02 4675086    /usr/lib/libstdc++.so.6.0.8
    03048000-0304e000 rwxp 03048000 00:00 0
    0350c000-03523000 r-xp 00000000 08:02 4675112    /usr/lib/libICE.so.6.3.0
    03523000-03524000 rwxp 00016000 08:02 4675112    /usr/lib/libICE.so.6.3.0
    03524000-03526000 rwxp 03524000 00:00 0
    03528000-03530000 r-xp 00000000 08:02 4675113    /usr/lib/libSM.so.6.0.0
    03530000-03531000 rwxp 00007000 08:02 4675113    /usr/lib/libSM.so.6.0.0
    0357f000-035a0000 r-xp 00000000 08:02 4662446    /usr/lib/libjpeg.so.62.0.0
    035a0000-035a1000 rwxp 00020000 08:02 4662446    /usr/lib/libjpeg.so.62.0.0
    08048000-08077000 r-xp 00000000 08:03 13683652   /home/XT95/Programmations/C++/Projets/Embya/test/Embya
    08077000-08079000 rwxp 0002e000 08:03 13683652   /home/XT95/Programmations/C++/Projets/Embya/test/Embya
    08079000-0817a000 rwxp 08079000 00:00 0
    08677000-09752000 rwxp 08677000 00:00 0
    40000000-40001000 r-xp 40000000 00:00 0          [vdso]
    40001000-40002000 rwxp 40001000 00:00 0
    40002000-40004000 rwxp 00000000 00:10 1216       /dev/zero
    40004000-4000b000 r-xs 00000000 08:02 4709635    /usr/lib/gconv/gconv-modules.cache
    4000b000-4000c000 r-xp 00000000 08:02 4709558    /usr/lib/gconv/ISO8859-1.so
    4000c000-4000e000 rwxp 00000000 08:02 4709558    /usr/lib/gconv/ISO8859-1.so
    4000e000-4000f000 rwxs d0001000 00:10 1219       /dev/nvidia0
    4000f000-40010000 rwxs d0c02000 00:10 1219       /dev/nvidia0
    40010000-40011000 rwxs 1095f000 00:10 1219       /dev/nvidia0
    40011000-40012000 rwxs 0a5b0000 00:10 1219       /dev/nvidia0
    40012000-40013000 rwxs cf66f000 00:10 1219       /dev/nvidia0
    40013000-40014000 rwxs 00000000 00:08 21364749   /SYSV00000000 (deleted)
    40014000-40015000 rwxs 00000000 00:08 21397524   /SYSV00000000 (deleted)
    40015000-40017000 rwxp 40015000 00:00 0
    40017000-40096000 r-xp 00000000 08:02 4673762    /usr/lib/libGLU.so.1.3.060501
    40096000-40097000 rwxp 0007f000 08:02 4673762    /usr/lib/libGLU.so.1.3.060501
    40097000-4009a000 rwxp 40097000 00:00 0
    4009a000-40198000 r-xp 00000000 08:02 4675080    /usr/lib/libX11.so.6.2.0
    40198000-4019c000 rwxp 000fe000 08:02 4675080    /usr/lib/libX11.so.6.2.0
    4019c000-40207000 rw-p 4019c000 00:00 0
    40207000-40231000 rw-s 00000000 00:08 65536      /SYSV00000000 (deleted)
    40231000-40252000 rw-p 40231000 00:00 0
    40252000-40552000 rw-s c0000000 00:10 1219       /dev/nvidia0
    405fd000-4073f000 rw-s 18446000 00:10 1219       /dev/nvidia0
    4073f000-40743000 rw-s 0a5b2000 00:10 1219       /dev/nvidia0
    40743000-40843000 rw-s 18edb000 00:10 1219       /dev/nvidia0
    40843000-40883000 rw-s cf62e000 00:10 1219       /dev/nvidia0
    40883000-40b84000 rw-p 40883000 00:00 0
    40bc5000-40bc7000 rw-p 40bc5000 00:00 0
    40cab000-40eab000 rw-s 04910000 00:10 1219       /dev/nvidia0
    40eab000-40f2b000 rw-s 19fe2000 00:10 1219       /dev/nvidia0
    40f2b000-4112b000 rw-s 17a86000 00:10 1219       /dev/nvidia0
    41200000-41221000 rw-p 41200000 00:00 0
    41221000-41300000 ---p 41221000 00:00 0
    bfd1c000-bfd3a000 rwxp bfd1c000 00:00 0          [stack]
    bfd3a000-bfd3b000 rw-p bfd3a000 00:00 0
    make: *** [x] Abandon
    ou un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    make: *** [x] Erreur de segmentation

    Lorsque je commente ces lignes, je n'ai aucune erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ObjVertex *Vertex;
    ObjNormal *Normal;
    ObjTexCoord *TexCoord;
    ObjFace *Faces;

    L'erreur de segmentation vient bien de la création du tableau d'objet, car meme si je n'appelle pas la fonction qui allou ObjVertex,ObjNormal etc sa plante.

    Merci de votre aide !
    #opengl@irc.epiknet.net

  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 519
    Points
    41 519
    Par défaut
    ça ressemble à une erreur de taille quelque part...
    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 régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    J'ai viré tout le contenu de mes destructeur et je n'ai plus l'erreur, j'esssay surement de supprimer quelque chose qui n'a pas été allouer quelque part.
    Je continu de chercher !
    #opengl@irc.epiknet.net

  4. #4
    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 519
    Points
    41 519
    Par défaut
    Tu initialises tes pointeurs dans le constructeur ?
    (au moins à NULL, si tu ne les alloues pas tout de suite).
    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.

  5. #5
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    Bon, j'ai mis mes pointeurs a NULL dans le constructeur et j'ai mis des conditions pour voir si elle sont différente de 0 dans le destructeur!
    Sa marche et sa marche aléatoirement :/!
    J'ai souvent ceci a l'ouverture du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [XT95@localhost test]$ make x
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 2
    nbEntity : 2
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  St9bad_alloc
    make: *** [x] Abandon
    Des fois sa m'affiche sa, des fois ca s'execute et sa ne m'affiche pas mes objets et des fois sa me les affichent :/ !

    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
     
     
    nbObj=0;
    nbEntity=0;
     
    while (!file.eof() )
    {
    file >> chaine;
    if(chaine == "LoadOBJ")
    {
    nbObj++;
    }
    if(chaine == "Obj:")
    nbEntity++;
    }
    objs = new CObjOBJ[nbObj];
    entObj = new CEntityOBJ[nbEntity];
    std::cout<<"nbObj : "<<nbObj<<std::endl;
    std::cout<<"nbEntity : "<<nbEntity<<std::endl;
    #opengl@irc.epiknet.net

  6. #6
    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 519
    Points
    41 519
    Par défaut
    Une exception bad_alloc signifie généralement "plus de mémoire".
    C'est à peu près l'équivalent de malloc() en C retournant NULL...

    Vu que je ne vois pas trop ce qui boufferait une énorme quantité de mémoire ici, je pense que tu tentes un new[] avec une quantité erronée...
    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.

  7. #7
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    C'est ce que je me suis dit aussi pourtant, il me reste a peu pres 250 mo libre et mon programme prend moins de 50 mo :/
    #opengl@irc.epiknet.net

  8. #8
    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 519
    Points
    41 519
    Par défaut
    C'est donc bien un new[] avec une quantité erronée.
    Ça peut être n'importe quoi : Une valeur non-initialisée, un pointeur pris pour un entier...
    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.

  9. #9
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    Effectivement, apparement il y a une erreur lors du chargement du 2eme objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [XT95@localhost test]$ make x
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 2
    nbEntity : 2
    Vertex : 384 Normal : 384
    Vertex : 134218094 Normal : 6526
    EDIT :
    C'est totalement aléatoire :
    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
    [XT95@localhost test]$ make x
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 2
    nbEntity : 2
    Vertex : 140129760 Normal : 384
    Vertex : 140120814 Normal : 140117894
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  St9bad_alloc
    make: *** [x] Abandon
    [XT95@localhost test]$ make x
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 2
    nbEntity : 2
    Vertex : 163853408 Normal : 0
    Vertex : 163853792 Normal : 384
    Vertex : 163844480 Normal : 163841560
    Vertex : 163844846 Normal : 163841926
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  St9bad_alloc
    make: *** [x] Abandon
    [XT95@localhost test]$
    #opengl@irc.epiknet.net

  10. #10
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	   nbVertices=0;
    	   nbNormals=0;
    	   nbTexCoords=0;
    	   nbFaces=0;
    Dans le constructeur et ca a l'air de marcher !!
    #opengl@irc.epiknet.net

  11. #11
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par lXT95l
    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	   nbVertices=0;
    	   nbNormals=0;
    	   nbTexCoords=0;
    	   nbFaces=0;
    Dans le constructeur et ca a l'air de marcher !!
    Citation Envoyé par Médinoc
    Tu initialises tes pointeurs dans le constructeur ?
    (au moins à NULL, si tu ne les alloues pas tout de suite).
    comme quoi la réponse était déjà donnée...
    ne pas oublier le tag résolu, merci

  12. #12
    Membre régulier Avatar de lXT95l
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 116
    Points
    116
    Par défaut
    J'ai pas mis résolu car j'ai mis "ca a l'air de marcher" ^^
    Le programme s'ouvre bien, les objets, j'en vois deux sur quatres et a la fermeture du prog j'ai ca :
    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
     
    [XT95@localhost test]$ clear && make x
     
     
    g++ src/main.o src/gui.o src/WorldManager.o -o Embya -L/usr/lib -lSDL -lpthread -lxtEngine -lSDL_image -lSDL_ttf -lGL -lGLU -lGLEW -llua -ldl
    ./Embya
    nbObj : 5
    nbEntity : 4
    Vertex : 384 Normal : 384 TexCoords : 384 Faces : 400
    Vertex : 366 Normal : 366 TexCoords : 366 Faces : 424
    Vertex : 216 Normal : 216 TexCoords : 216 Faces : 236
    Vertex : 443 Normal : 443 TexCoords : 455 Faces : 618
    Vertex : 393 Normal : 393 TexCoords : 393 Faces : 256
    X Error of failed request:  GLXBadContext
      Major opcode of failed request:  144 (GLX)
      Minor opcode of failed request:  4 (X_GLXDestroyContext)
      Serial number of failed request:  43
      Current serial number in output stream:  45
    X Error of failed request:  BadWindow (invalid Window parameter)
      Major opcode of failed request:  4 (����stroyWindow)
      Resource id in failed request:  0x400000f
      Serial number of failed request:  132
      Current serial number in output stream:  134
    make: *** [x] Erreur de segmentation
    De plus, j'avais mis les pointeurs a NULL comme Médinoc me l'avais dit

    EDIT : Résolu Merci beaucoup Médinoc.
    #opengl@irc.epiknet.net

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/01/2015, 13h23
  2. Réponses: 7
    Dernier message: 01/01/2010, 08h31
  3. Faire communiquer des classes entre elles?
    Par aurelie689 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/05/2009, 11h46
  4. Utilisation des classes entre elles
    Par leodi dans le forum Flash
    Réponses: 1
    Dernier message: 17/05/2008, 16h20
  5. Gestion des classes entre elles et organisation.
    Par Hybrix dans le forum Développement 2D, 3D et Jeux
    Réponses: 54
    Dernier message: 29/08/2007, 19h54

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