Accueil > Forum > > > > problème d'allocation de classe
problème d'allocation de classe
mercredi 19 avril 2006 à 01:05:59 |
problème d'allocation de classe

dark_naruto25
|
Salut les amis
Voilà un autre problème bizzard.
J'ai une classe appelé Bitmap, qui comme son nom l'indique gère une image bmp.
Bref, à côté de cette classe j'ai une fonction :
void dessinerImage(char* image,int x,int y) {
Bitmap * img = new Bitmap(image); // alloue et charge en mémoire les infos de l'image (dimensions, palette)
initPalette(img->getPalette(),img->getNbrCouleur()); // initialise la palette (spécifique à une libraire utilisée)
img->show(x,y); // affichage de l'image (depuis le fichier du DD)
delete img;
}
Voilà pour les présentations. Dans un fichier, j'ai déclaré en globale :
Bitmap* cases[9];
et dans une fonction (du même fichier), je fait :
for(i=0; i<9; i++)
cases[i] = new Bitmap("Fichier"); <-- Prob
Et le problème c'est que quand la fonction dessinerImage(...) est appelé avant, j'ai une erreur de segmentation à la ligne Prob, et quand je mets l'appel à la fonction dessinerImage(...) en commentaire, ça fonctionne.
Donc je me remets à l'énorme potentiel de se site Web pour me trouver le problème.
|
|
mercredi 19 avril 2006 à 10:33:22 |
Re : problème d'allocation de classe

luhtor
|
Je comprends pas tout a fait, finalement la fonction "dessiner image" elle est appelé quand ? Car a priori, ya pas d'erreur la .
|
|
mercredi 19 avril 2006 à 11:15:20 |
Re : problème d'allocation de classe

dark_naruto25
|
et bien là où j'alloue les Bitmap (donc là où il y a le prob, c'est une fonction qui s'appel chargerImage()
et avant l'appel de cette fonction, j'appel la fonction dessinerMenu() qui appel la fonction dessinerImage().
et donc quand je met en commentaire la fonction dessinerMenu(), et bien ça marche, sinon j'obtiens une erreur de segmentation !
|
|
mercredi 19 avril 2006 à 11:23:10 |
Re : problème d'allocation de classe

luhtor
|
Ben avec ce que tu nous mets, on peut rien dire. Post d'avantage de code. Ya une erreur mémoire quelque part, faut la trouver.
|
|
mercredi 19 avril 2006 à 11:43:29 |
Re : problème d'allocation de classe

dark_naruto25
|
Après quelques mise en commentaire de certaines lignes, j'ai déterminer la fonction qui pourrais couiller le bordel :
void Bitmap::show2(int x,int y) {
BYTE *ptr;
BYTE octet;
BYTE *ligne;
DWORD nbOctet,i,j;
FILE *fic;
fic = fopen(name,"r");
if( fic==NULL ) cerr<<"Erreur d'ouverture du fichier"<<endl;
else {
fseek(fic,header.BitmapOffset,SEEK_SET);
ligne = new BYTE[ header.Width ];
for(i=0; i<header.Heigth; i++) {
ptr = ligne;
nbOctet = (header.Width*header.Bpp)/8;
for(j=0; j<nbOctet; j++) {
fread(&octet,1,1,fic);
getCouleur(octet,ptr,8/header.Bpp);
}
if( (header.Width*header.Bpp)%8!= 0 ) {
nbOctet++;
fread(&octet,1,1,fic);
getCouleur(octet,ptr,(header.Width*header.Bpp)%8);
ptr++;
}
for(j=0; j<header.Width; j++) {
modifierCouleur( ligne[j] );
afficherPoint(x+j,y+header.Heigth-i);
}
if( nbOctet%4!=0 ) {
nbOctet = 4-(nbOctet%4);
fseek(fic,nbOctet,SEEK_CUR);
}
}
fclose(fic);
}
}
Maintenant il ne reste plus qu'à savoir pourquoi cette fonction fait faire des erreurs de segmentation plus loin dans le code !
|
|
mercredi 19 avril 2006 à 11:47:00 |
Re : problème d'allocation de classe

dark_naruto25
|
Peut être vais-je préciser que la fonction show2(int x,int y); marche parfaitement bien.
|
|
mercredi 19 avril 2006 à 11:54:54 |
Re : problème d'allocation de classe

dark_naruto25
|
Réponse acceptée !
voilà du nouveau !
On m'a donc reprécisé sur #Programmation que les erreurs de segmentations sont dût à un problème de mémoire !
Quelle découvertes me direz-vous ?! lol
Bref, j'ai jeté encore un oeil (encore heureux que j'en ai 2 !) sur le code.
Je viens de voir la ligne :
ligne = new char[ ... ];
mais plus bas il n'y a pas de ligne
delete [] ligne;
Ce que donc j'ai fait ! Et miracle ça fonctionne !
Je ne pensais pas que aloué un tableau de 100 cases fesait planter autant !
Mais bon toujours est-il que ça fonctionne !
Merci quand même à toi luhtor pour avoir pris le temps de répondre.
|
|
mercredi 19 avril 2006 à 14:59:54 |
Re : problème d'allocation de classe

luhtor
|
Mais en soi delete[] ligne ne devrait rien changer. Au pire tu as des
fuites, mais ca devrait pas résoudre ton problème. Mais bon, c'est
illisible comme fonction, mais ca, ca vient pas trop de toi. Toutes les
manipulations de fichiers, c'est le boxon.
|
|
Cette discussion est classée dans : problème, image, classe, img, bitmap
Répondre à ce message
Sujets en rapport avec ce message
Problème d'affichage d'un image bitmap [ par MorbhAck ]
Bonsoir a tous et bonne fêtes !J'ai un gros souci, je suis en train de faire un programmeet j'ai un problème vraiment vraiment bizarre.Bon le problème
problème de désactivation d'un bouton [ par Pistol_Pete ]
BonjourVoila mon problème:J'ai un bouton sur lequel j'ai appliqué un bmp et lorsque je veux désactiver ce bouton, au lieu de le griser, il remplace l'
image enregistrer le canvas + bitmap [ par athomas ]
bonjour, Je vous expose mon problème : J'ai un composant TPicture (une picture box toute simple). Je charge une image dans le bitmapEnsuite, je mets d
Matrice associé à une image [ par njo80 ]
J'ai un problème assez simple à comprendre mais difficille à faire.Ce n'et pas vraiment en C. Bien que cela me permettra de détecter les collisions su
Problème d’accès au contrôle d’une fenêtre. [ par Superweight ]
Bonjour a tous,Mon problème est le suivant: lorsque que je crée une nouvelle classe sous un projet SDI, je souhaite pourvoir contrôler les contrôles d
les CGIs PHP et images x-bitmap [ par chinui ]
slt tous, j'ai un debutant en programmation avec les CGIs, j'ai u fichier en .c qui génére une image x-bitmap, mais quant j'essais de l'ouvrir avec un
Portée d'un objet créer [ par Nixeus ]
Bonjour,Grosse question de newbie j'avoue, mais je rencontre un problème.Le logiciel que je développe, doit se voir créer un seul et unique Objet "CGe
Problème instanciation de classe [ par brian85 ]
Bonjour, je suis débutant, j'ai suivi quelques tutos du site du zéro qui sont très bien faits et pour aller plus loin, je me frotte aux classes, et là
adapter l'image à la taille du bouton [ par ndubien ]
Bonjour,Je cherche à mettre une image sur un bouton qui s'adapte automatiquement dés que la taille du bouton change.Tout d'abord cette opération est-e
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|