armras
-
23 avril 2013 à 18:50
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
24 avril 2013 à 11:40
Bonjour à tous, j'espere trouver de l'aide ici :)
Voila mon probleme :
Je dois programmer un "photoshop" pour image du type "ppm" pour la fac, voila commnet je m'y suis pris :
1) une classe "base" (en fait c'est une matrice)
2) un template "image" qui n'est qu'un tableau de base (un matrice en 3D du coup, pour pouvoir représenter de 1 (si c'est une image noir/blanc) à 3 (pour RGB) "couleurs)).
A priori, ca peut venir de mes operator[] ou de mes allocs :x
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 24 avril 2013 à 11:40
Bonjour.
C'est tout simplement que:
1) Si le fichier n'existe pas, tu n'initialises pas ton tableau image, alors que tu essaies toujours de le libérer.
3) Tu libères mal celui-ci.
Ajoute au début de image::image():
for(int i=0; i<N; i++)
img[i] = 0;
Dans le destructeur image::~image(), il faut mettre:
for(int i=0; i<N; i++)
delete img[i];
En effet, on libère pas une zone "statique". delete[] va avec un new[] et non avec un tab[TAILLE_FIXE].
Quelques conseils:
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace - Ne prédéclare rien, écris la variable au moment de l'utilisation (voir mes "for" par rapport au tiens)
- assert.h => cassert
- Utilise std::vector au lieu de faire des array à l'ancienne !
- Si les dimensions sont fixes, alors utilise un seul tableau de taille N * N, auquel tu accès à [x][y] en faisant [x + y * taille], exemple: https://github.com/cptpingu/game/blob/master/src/Core/Array2D.hh (d'autre petit outils sont présents, n'hésite pas à les regarder).
- Pas besoin de fichier.close(), un fichier de type fstream se ferme tout seul .
- N'hésite pas à poster tes avancées, si tu veux une critique constructive de ton code.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question