J'ai un problème, je ne peux pas le résoudre, juste erreur de réception:Problème de fuite de mémoire. iPhone SDK
Programme reçu le signal: "0". Le débogueur s'est fermé en raison du signal 10 (SIGBUS). Le débogueur s'est fermé en raison du signal 10 (SIGBUS).
Voici une méthode, si je la mettre en commentaire, problème va aways
- (void)loadTexture {
const int num_tex = 10;
glGenTextures(num_tex, &textures[0]);
//TEXTURE #1
textureImage[0] = [UIImage imageNamed:@"wonder.jpg"].CGImage;
//TEXTURE #2
textureImage[1] = [UIImage imageNamed:@"wonder.jpg"].CGImage;
//TEXTURE #3
textureImage[2] = [UIImage imageNamed:@"wall_eyes.jpg"].CGImage;
//TEXTURE #4
textureImage[3] = [UIImage imageNamed:@"wall.jpg"].CGImage;
//TEXTURE #5
textureImage[4] = [UIImage imageNamed:@"books.jpg"].CGImage;
//TEXTURE #6
textureImage[5] = [UIImage imageNamed:@"bush.jpg"].CGImage;
//TEXTURE #7
textureImage[6] = [UIImage imageNamed:@"mushroom.jpg"].CGImage;
//TEXTURE #8
textureImage[7] = [UIImage imageNamed:@"roots.jpg"].CGImage;
//TEXTURE #9
textureImage[8] = [UIImage imageNamed:@"roots.jpg"].CGImage;
//TEXTURE #10
textureImage[9] = [UIImage imageNamed:@"clean.jpg"].CGImage;
for(int i=0; i<num_tex; i++) {
NSInteger texWidth = CGImageGetWidth(textureImage[i]);
NSInteger texHeight = CGImageGetHeight(textureImage[i]);
GLubyte *textureData = (GLubyte *)malloc(texWidth * texHeight * 4);
CGContextRef textureContext = CGBitmapContextCreate(textureData,
texWidth, texHeight,
8, texWidth * 4,
CGImageGetColorSpace(textureImage[i]),
kCGImageAlphaPremultipliedLast);
CGContextDrawImage(textureContext, CGRectMake(0.0, 0.0, (float)texWidth, (float)texHeight), textureImage[i]);
CGContextRelease(textureContext);
glBindTexture(GL_TEXTURE_2D, textures[i]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureData);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
free(textureData);
}
}
quelqu'un peut me aider à libérer/supprimer des objets dans cette méthode? Merci.
étape par la méthode. Sur quelle ligne l'erreur se produit-elle? –
il se produit sur le redémarrage 3-ème du jeu, donc, sur le troisième (parfois 4-ème) temps iPhone juste fermer mon application. il me semble qu'il y a une énorme fuite de mémoire cachée ici – x0661t
Je ne vois aucune fuite de mémoire. – shosti