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 :
ou un simple :
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
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 !
Partager