znora Skrevet 14. oktober 2007 Del Skrevet 14. oktober 2007 (endret) jeg har vel aldri egnetlig brukt pekere skikkelig. og når jeg først begynner, så tryner programmet mitt hardt. rovt sett gjør jeg dette: 7 #include <stdlib.h> ... 73 printf("vertices: %i\n",_mesh->num_vertices); 74 printf("sizeof: %i\n",sizeof(float)); 75 printf("size*vertices: %i\n",sizeof(float)*_mesh->num_vertices); 76 float *tangentbuffer = (float*) malloc(_mesh->num_vertices*sizeof(float)); 77 printf("entering second loop"); dette gir igjen $ make run g++ -Wall -g -I/home/znora/txt/code/dgl/include/dgl -c bumpmodel.cpp g++ main.o bumpmodel.o -Wall -g -o Normalmap -lSDL -lSDL_mixer -lGLEW -lSDL_image -lGL -lGLU -ldgl -I/home/znora/txt/code/dgl/include/dgl mv Normalmap build make -C ../ make[1]: Entering directory `/home/znora/txt/code/examples/drodling' src/build/Normalmap calcing tangents for: Suzanne vertices: 2904 sizeof: 4 size*vertices: 11616 denne outputen før den fryser og må drepes (kill -9) vi ser at linje 76 gjør noe galt selv om 74 og 75 printer pene verdier. er minneområdet rett og slett for stort? gjør jeg noen klassiske nybegynnertabber? Endret 14. oktober 2007 av znora Lenke til kommentar
Giddion Skrevet 14. oktober 2007 Del Skrevet 14. oktober 2007 Jeg ser ikke noe galt med den koden du har lagt ut eller de dataene som har blitt printet ut. Hvis malloc feiler så skal den returneren NULL. Bare for å utelukke det meste så kan du jo lagre verdiene du sender til malloc i en int for så lese den og sende den til malloc, men som sagt jeg ser ikke noe galt med koden. Lenke til kommentar
znora Skrevet 14. oktober 2007 Forfatter Del Skrevet 14. oktober 2007 (endret) feilen forsvant da jeg flyttet koden til et annet punkt i fila. ingen vet hvorfor. takk for svar. Endret 14. oktober 2007 av znora Lenke til kommentar
GeirGrusom Skrevet 14. oktober 2007 Del Skrevet 14. oktober 2007 Høres ut som et stack problem... Lenke til kommentar
znora Skrevet 14. oktober 2007 Forfatter Del Skrevet 14. oktober 2007 etter å ha luket mange mindre feil skulle det vise seg at jeg i en av pekerene mine hadde glemt å gange med antall koordinater i et polygon 3. Derfor allokerte jeg bare 1/3 av det minnet jeg trengte. Lenke til kommentar
Dj_Offset Skrevet 15. oktober 2007 Del Skrevet 15. oktober 2007 etter å ha luket mange mindre feil skulle det vise seg at jeg i en av pekerene mine hadde glemt å gange med antall koordinater i et polygon 3. Derfor allokerte jeg bare 1/3 av det minnet jeg trengte. Hint: bruk valgrind for å debugge slike minneproblemer. Den gir deg ofte gode hint om feil i kode du tror fungerer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå