Pb de boucle for récalcitrante [C++] - C++ - Programmation
Marsh Posté le 28-04-2003 à 16:17:20
Ben rien vu de louche non plus (?) tu peux ptet essayer pas a pas au debug ?
et je dois dire que les ma...... non rien
Marsh Posté le 28-04-2003 à 16:20:17
chrisbk a écrit : Ben rien vu de louche non plus (?) tu peux ptet essayer pas a pas au debug ? |
...lloc ne doivent pas être castés?
Aucune idée de ce que je peux utiliser comme débugger là, je code sous windows98, compile avec djgpp...ché pas si gdb est inclus, v regarder!
Marsh Posté le 28-04-2003 à 16:21:04
assure toi que this->getLength() ne varie pas
et puis ton tri du ableau l'es tres pas tres tres beau, mais bon, y a que 9 elements
et pourquoi un malloc, t'aime pas les new, pourtant tu fais un joli delete apres? y a un truc qui est pas clair pour toi je crois. C -> malloc/free, C++ new/delete new[]/delete[]. tu fais du C avec classes j'ai bien l'impression
Marsh Posté le 28-04-2003 à 16:21:53
skeye a écrit : ...lloc ne doivent pas être castés? |
Nan
new/delete
malloc/free
(pis que tu fais du malloc en C++ ?skan meme plus pratique le new )
Marsh Posté le 28-04-2003 à 16:28:45
++Taz a écrit : assure toi que this->getLength() ne varie pas |
mauvais réflexes...dsl le ferai plus!
this->getLength() ne fait que renvoyer la valeur d'une variable que je ne modifie que lors de la lecture de mon image...
Citation : cette appli n'est là que pour quelques tests, commenter la rigueur/propreté du code n'est donc pas nécéssaire, merci... |
Marsh Posté le 28-04-2003 à 16:30:36
affiche this->getSize()
assure toi que tab n'est pas null
aussi affiche this->getLength() dans ta boucle for i (pour controle)
Marsh Posté le 28-04-2003 à 16:32:50
chrisbk a écrit : |
rahhhhhhhh v aller me flageller avec des orties...
J'ai jamais utilisé les new que sur des classes que j'avais définies moi-même...c'est un truc de ce genre que je dois mettre à la place avant qu'un autre ne me fasse la remarque? :
Code :
|
Marsh Posté le 28-04-2003 à 16:39:34
Plus la peine de répondre, j'ai trouvé...
Comme un gros boulet que je suis, j'ai oublié le int
dans mon
Code :
|
Et l est aussi le nom de la variable membre designant la longueur...
Merci quand même à tous!
Marsh Posté le 28-04-2003 à 16:41:04
skeye a écrit : Plus la peine de répondre, j'ai trouvé...
|
jeune homme, vous aurez appris de cette experience l'interet de differencier variable membre de variable locale par un quelconque moyen syntaxique
Marsh Posté le 28-04-2003 à 16:42:50
chrisbk a écrit : |
tootafé...Je cours de ce pas rajouter "m_" devant tous mes noms de variables membres!
Marsh Posté le 28-04-2003 à 18:34:03
chrisbk a *crit : |
Je prefere la methode de Python : acceder a toutes les donnes membres en passant pas (*this)
Mais bon, je peux comprendre que ca en rebute certains aussi
Marsh Posté le 28-04-2003 à 19:11:42
Kristoph a écrit : |
Bah vi mais C++ il comprend même si on le met pas le this...et c'est ca qui m'a fait perdre un peu de temps cet aprem'!
Marsh Posté le 29-04-2003 à 14:37:56
skeye a écrit :
|
C'est juste ca non?
Parce-que j'aimerais savoir ce qui pourrait causer une segfault lors du delete d'une telle variable...
Marsh Posté le 29-04-2003 à 14:40:21
skeye a écrit : |
en quoi ca pourrait etre faux ?
Marsh Posté le 29-04-2003 à 14:51:42
chrisbk a écrit : |
J'en sais rien, je suis juste trop habitué au C et aux malloc (pas taper!), ca me fait bizarre le new pour un int*...
Bon, c'est déjà ca, si c'est correct, mais ca me dit pas pourquoi je me retrouve avec un segfault lorsque je delete mon tab...!
La fonction donne à peu près ca:
Code :
|
Après un passage dans le case 90, segmentation fault.
Si je commente le delete tmp; tout se passe bien...
Comprends pas...
Marsh Posté le 29-04-2003 à 14:53:35
attention jeune homme
allocation d'un tableau :
new [..]
liberation d'un tableau :
delete []tableau;
Marsh Posté le 29-04-2003 à 14:58:54
chrisbk a écrit : attention jeune homme |
ahhhhhhhhhhhhhhhhhh!
Voilà p-e l'erreur (c'est bizarre que ca me donne ce résultat qu'ici, je l'ai fait au moins 10 fois...:lol
Marsh Posté le 29-04-2003 à 15:03:34
Bon, ca me fait quelques erreurs de corrigées (:jap, mais ca ne résoud pas le pb...les symptomes sont les mêmes!
Marsh Posté le 29-04-2003 à 15:04:23
++Taz a écrit : on va pas quoter, mais ça mériterait |
Hésite pas...je reconnais être un gros boulet qd je m'y mets...
Marsh Posté le 29-04-2003 à 15:48:45
Bon, ya du nouveau...après 2/3 tests, un make clean et une recompil, le segfault intervient maintenant même si je commente le delete.
Par contre je comprends toujours pas la cause du bug!
Dans le case 90 juste avant le break j'ai mis un cout, qui s'affiche.
Il devrait donc sortir de la fonction sans problème...
Mais j'ai aussi miss un cout dans la fonction appelante, juste après l'appel...et celui-ci n'apparait pas!
Je commence à , d'autant plus que c'est probablement une connerie, comme d'habitude avec moi...
[edit]
Ca y est, je suis fou:
J'ai viré tout ce qu'il pouvait se passer après la fonction à-part les cout => plante tjrs.
J'ai alors viré le delete => plante plus
J'ai tout remis sauf le delete => le cout de la fonction appelante apparait, mais ca crashe qd meme...
Marsh Posté le 28-04-2003 à 16:13:42
Bon, là je crois que j'ai besoin d'un oeil extérieur.
Je suis en train de coder un bout de prog de traitement d'image, en l'occurence un filtre médian.
Le problème est que quelle que soit l'image sur laquelle je travaille, le code ci-dessous s'obstine à sortir un peu vite de la boucle:
Voici l'affichage que j'obtiens à l'exécution:
longueur=2470 largeur=3503
i=1
i=2
i=3
i=4
i=5
i=6
i=7
Ole!
Pour toutes les images i ne dépasse pas 7...et j'avoue que je ne comprends rien!
PS: cette appli n'est là que pour quelques tests, commenter la rigueur/propreté du code n'est donc pas nécéssaire, merci...