2011-07-12 4 views
0

Lorsque j'ai vérifié la fuite de ma demande avec des instruments (outil X-Code, je programme dans l'objectif c), j'ai vu les allocations #living "malloc 48 octets" croître de plus en plus. En outre, Instruments dit qu'il fuit là. Si je vérifie pour l'appelant responsable, il dit toujours "gluNewQuadric". J'ai vérifié sur Internet un peu et j'ai trouvé que certaines personnes avaient les mêmes plaintes, mais pas trop, et j'ai également trouvé aucune solution de travail. J'ai aussi misGluNewQuadric fuite de mémoire

glutInit(&argc, argv); 

dans « main.m », et l'augmentation de #living semble avoir été un peu, mais est encore en croissance persistante. Le seul endroit où j'utilise glu est avec

glutSolidSphere 
glutWireSphere 

Toutes les suggestions sur la façon de résoudre ce problème?

+0

appelez-vous 'gluDeleteQuadric '? –

+0

Non. Quel Quadric dois-je supprimer? glutSolidSphere semble causer le problème, et gluNewQuadric est invoqué à l'intérieur de glutSolidSphere, et je n'obtiens pas la sphère comme valeur de retour ou quelque chose ... – Ivorius

+0

Au lieu de 'glut * Sphere', utilisez' gluSphere' directement. Votre implémentation globale ne libère probablement pas GLUquadricObj correctement. –

Répondre

2

Voici un pro-tipp: N'utilisez pas les primitives de rendu GLUT. Ils sont là pour des tests rapides et ne sont pas destinés aux entreprises sérieuses. Il y a quelques semaines j'ai posté deux longues réponses sur la façon de dessiner une sphère en utilisant OpenGL pur sans recourir à GLU ou GLUT:

+0

Ceci est une solution x) Mais, avec l'aide de votre tutoriel, je serai au moins en mesure d'utiliser Spheres plus loin. Merci :) – Ivorius