Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2224 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Problème de pointeur this, je capte plus rien :??:

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Problème de pointeur this, je capte plus rien :??:

n°169422
godbout
Génial.
Posté le 02-07-2002 à 09:23:57  profilanswer
 

Desole de vous faire chier encore mais la je capte pas :??:
 
Je prefere tout mettre en image parce que j'arriverai pas a expliquer le probleme.
 
Je commence  par rentrer dans ma fonction :
 
http://site.voila.fr/godbout/this1.jpg
 
Jusque la tout va bien  
 
http://site.voila.fr/godbout/this11.jpg
 
 
J'arrive au niveau du return  
 
http://site.voila.fr/godbout/this2.jpg
 
La aussi c'est bon
 
http://site.voila.fr/godbout/this22.jpg
 
Et la je retourne donc dans le programme principal
 
http://site.voila.fr/godbout/this3.jpg
 
Le this est completement foiré :??:
 
http://site.voila.fr/godbout/this33.jpg$
 
Ca fait deux jours que je cherche j'arrive pas a capter ou est le pb :??:
J'ai tout rebuilde, cree un nouveau projet, etc...
 
 
 
 


---------------
Super.
mood
Publicité
Posté le 02-07-2002 à 09:23:57  profilanswer
 

n°169425
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-07-2002 à 09:25:58  profilanswer
 

spas bien les screenshots en jpeg :non:
sinon c'est vrai que le problème est bizarre :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°169426
godbout
Génial.
Posté le 02-07-2002 à 09:28:38  profilanswer
 

Attend je les refais en bmp :sarcastic: :D
Bon ben si quelqu'un a une idee c'est le moment ou jamais :/


---------------
Super.
n°169428
LetoII
Le dormeur doit se réveiller
Posté le 02-07-2002 à 09:29:32  profilanswer
 

C pas si bizzard que ça à mon avis, qu'est ce que tu appel programme principale? C une méthode d'un objet, ou la fonction winmain (ou main)?


---------------
Le Tyran
n°169429
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-07-2002 à 09:30:00  profilanswer
 

Godbout a écrit a écrit :

Attend je les refais en bmp :sarcastic: :D




 
bhen non, PNG ou GIF, c'est moins gros comme fichier et au moins on se tappe pas une compression dégeux.


Message édité par antp le 02-07-2002 à 09:30:23

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°169430
godbout
Génial.
Posté le 02-07-2002 à 09:32:01  profilanswer
 

letoII a écrit a écrit :

C pas si bizzard que ça à mon avis, qu'est ce que tu appel programme principale? C une méthode d'un objet, ou la fonction winmain (ou main)?




 
Quand je dis programme principal je me suis mal exprime en fait, c'est une methode d'un objet effectivement.
 
 


---------------
Super.
n°169432
LetoII
Le dormeur doit se réveiller
Posté le 02-07-2002 à 09:32:24  profilanswer
 

C quoi le type m_QuotationHeader ?


---------------
Le Tyran
n°169433
godbout
Génial.
Posté le 02-07-2002 à 09:32:37  profilanswer
 

antp a écrit a écrit :

 
 
bhen non, PNG ou GIF, c'est moins gros comme fichier et au moins on se tappe pas une compression dégeux.
 




 
Je fais ce que je peux j'ai que paint de merde, alors j'suis deja bien content de pouvoir enregistrer en jpg, pis bon du code que ce soit degueu ou pas je pense pas que ca change grand chose.


---------------
Super.
n°169434
godbout
Génial.
Posté le 02-07-2002 à 09:33:18  profilanswer
 

letoII a écrit a écrit :

C quoi le type m_QuotationHeader ?




 
C'est une struct, avec principalement une chaine de 256 caracteres comme variable.


---------------
Super.
n°169437
LetoII
Le dormeur doit se réveiller
Posté le 02-07-2002 à 09:34:24  profilanswer
 

Ce serait pas parce que tu es arrivé en fin de fichier?


Message édité par LetoII le 02-07-2002 à 09:34:45

---------------
Le Tyran
mood
Publicité
Posté le 02-07-2002 à 09:34:24  profilanswer
 

n°169439
godbout
Génial.
Posté le 02-07-2002 à 09:36:37  profilanswer
 

letoII a écrit a écrit :

Ce serait pas parce que tu es arrivé en fin de fichier?




 
nan c'est sur que ca vient pas de ca.
En plus je viens de verifier.


---------------
Super.
n°169454
LetoII
Le dormeur doit se réveiller
Posté le 02-07-2002 à 09:45:38  profilanswer
 

C peut êtr le débugger qui se chie dessus et ton objet n'a rien :D


---------------
Le Tyran
n°169455
godbout
Génial.
Posté le 02-07-2002 à 09:45:44  profilanswer
 

Je viens d'essayer sur un autre pc ca marche :heink:


---------------
Super.
n°169459
youdontcar​e
Posté le 02-07-2002 à 09:48:11  profilanswer
 

et ? que se passe-t-il si tu commentes le code de la fonction ?  
 
ce genre de code  
 
  while (strncmp) (qui au passage pourrait très bien s'écrire while (buffer[count] != ';';))
 
est infâme et ne checke même pas l'overflow de indexTemp.  
 
au hasard : ton code est bancal au possible, pas seulement ici, écrit n'importe où n'importe quoi dans la mémoire, donc boum.

n°169464
godbout
Génial.
Posté le 02-07-2002 à 09:49:50  profilanswer
 

youdontcare a écrit a écrit :

et ? que se passe-t-il si tu commentes le code de la fonction ?  
 
ce genre de code  
 
  while (strncmp) (qui au passage pourrait très bien s'écrire while (buffer[count] != ';';))
 
est infâme et ne checke même pas l'overflow de indexTemp.  
 
au hasard : ton code est bancal au possible, pas seulement ici, écrit n'importe où n'importe quoi dans la mémoire, donc boum.




 
J'suis desole c'etaient mes premiers programmes [:joce]
 
edit: ca marche sur un autre pc, et je viens de recompiler en release et ca marche aussi.


Message édité par godbout le 02-07-2002 à 09:50:38

---------------
Super.
n°169465
youdontcar​e
Posté le 02-07-2002 à 09:50:16  profilanswer
 

Godbout a écrit a écrit :

Je viens d'essayer sur un autre pc ca marche :heink:


miracle, deux pcs différents allouent les objets dans des endroits différents. ton programme fait toujours n'importe quoi n'importe où, sauf que le n'importe où ne crashe pas le second.

n°169467
godbout
Génial.
Posté le 02-07-2002 à 09:51:29  profilanswer
 

youdontcare a écrit a écrit :

miracle, deux pcs différents allouent les objets dans des endroits différents. ton programme fait toujours n'importe quoi n'importe où, sauf que le n'importe où ne crashe pas le second.




 
Comment ca il fait n'importe koi n'importe ou ??
Pourtant j'alloue toujours de la mem, je fais gaffe.
 
edit: et en release ca marche maintenant.


Message édité par godbout le 02-07-2002 à 09:51:53

---------------
Super.
n°169469
youdontcar​e
Posté le 02-07-2002 à 09:52:54  profilanswer
 

tu devrais passer par le memory inspector. tu mets l'adresse de this dedans, tu debuggues pas à pas, dès que tu vois du rouge tu sauras d'où vient l'erreur.

n°169492
BENB
100% Lux.
Posté le 02-07-2002 à 10:11:57  profilanswer
 

A mon avis tu depasse la capacité de tes chaines...
tu ecrit n'importe ou en memoire, et tu ecrase eventuellement le this... ceci expliquerait aussi le comportement aléatoire...

n°169601
godbout
Génial.
Posté le 02-07-2002 à 11:36:44  profilanswer
 

youdontcare a écrit a écrit :

tu devrais passer par le memory inspector. tu mets l'adresse de this dedans, tu debuggues pas à pas, dès que tu vois du rouge tu sauras d'où vient l'erreur.




connais pas ca, j'vais y jeter un oeil, merci.


---------------
Super.
n°169602
godbout
Génial.
Posté le 02-07-2002 à 11:37:06  profilanswer
 

BENB a écrit a écrit :

A mon avis tu depasse la capacité de tes chaines...
tu ecrit n'importe ou en memoire, et tu ecrase eventuellement le this... ceci expliquerait aussi le comportement aléatoire...




 
Je vais y jeter un oeil aussi, mais ca m'etonnerait que ca vienne de la.
 
edit: [:nofret]
 
Je fais un char buf[255] = {0};
et dans la fonction je fais un fgets(..., 1999,...
:sarcastic:


Message édité par godbout le 02-07-2002 à 11:43:45

---------------
Super.
n°169715
godbout
Génial.
Posté le 02-07-2002 à 12:27:50  profilanswer
 

youdontcare a écrit a écrit :

tu devrais passer par le memory inspector. tu mets l'adresse de this dedans, tu debuggues pas à pas, dès que tu vois du rouge tu sauras d'où vient l'erreur.




 
J'ai pas trop capte comment ca marchait.


Message édité par godbout le 02-07-2002 à 12:28:21

---------------
Super.
n°169729
smaragdus
whores, drugs & J.S. Bach
Posté le 02-07-2002 à 12:48:39  profilanswer
 

Si ça marche sur un autre PC, c'est quasiment certain que ça vient des allocations mémoires. Puique tu programmes en C++, pourquoi fais tu des malloc ? (c'est du C)

n°169738
youdontcar​e
Posté le 02-07-2002 à 13:01:35  profilanswer
 

Godbout a écrit a écrit :

J'ai pas trop capte comment ca marchait.


tu rentres une adresse mémoire et ça affiche son contenu. entre plusieurs steps de debug, si le contenu change, le changement est affiché en rouge : pratique pour voir où et quand ça plante.
 
tu peux donc soit inspecter 'this' (voir si l'objet est effacé) soit inspecter aux alentours de '&this' (voir si l'espace qui le contient qui est effacé).


Message édité par youdontcare le 02-07-2002 à 13:03:02
n°169753
BENB
100% Lux.
Posté le 02-07-2002 à 13:23:12  profilanswer
 

Godbout a écrit a écrit :

 
 
J'ai pas trop capte comment ca marchait.




 
Tu peut aussi mettre un point d'arret sur une modification de la valeur d'une variable, this et *this...
comme cela tu t'arreteras là ou tu fais ton dépassement, a moins que Visual ne plante avant...

n°169757
godbout
Génial.
Posté le 02-07-2002 à 13:34:34  profilanswer
 

Smaragdus a écrit a écrit :

Si ça marche sur un autre PC, c'est quasiment certain que ça vient des allocations mémoires. Puique tu programmes en C++, pourquoi fais tu des malloc ? (c'est du C)




 
J'ai dit un peu plus haut que c'etait un de mes premiers programmes donc j'avais (et j'ai encore) un peu de mal ;)


---------------
Super.
n°169760
godbout
Génial.
Posté le 02-07-2002 à 13:36:06  profilanswer
 

youdontcare a écrit a écrit :

tu rentres une adresse mémoire et ça affiche son contenu. entre plusieurs steps de debug, si le contenu change, le changement est affiché en rouge : pratique pour voir où et quand ça plante.
 
tu peux donc soit inspecter 'this' (voir si l'objet est effacé) soit inspecter aux alentours de '&this' (voir si l'espace qui le contient qui est effacé).




 
Ok ca a l'air pas mal pratique. Je vais me pencher sur la question merci.


---------------
Super.
n°169761
godbout
Génial.
Posté le 02-07-2002 à 13:36:49  profilanswer
 

BENB a écrit a écrit :

 
 
Tu peut aussi mettre un point d'arret sur une modification de la valeur d'une variable, this et *this...
comme cela tu t'arreteras là ou tu fais ton dépassement, a moins que Visual ne plante avant...




 
ok. :jap:
Visual n'a pas encore plante, mais si je continue comme ca ca devrait pas tarder.


---------------
Super.
n°170612
BENB
100% Lux.
Posté le 03-07-2002 à 15:53:40  profilanswer
 

Godbout a écrit a écrit :

 
 
ok. :jap:
Visual n'a pas encore plante, mais si je continue comme ca ca devrait pas tarder.




 
La derniere fois que j'ai fais ca (c'était avec visual 5) il a alloué toute la memoire de la machine :D
 
après il me demandait de fermer qq fenetres afin de pouvoir liberer de la memoire, mais il n'en avait plus suffisement pour m'en montrer une... situation bloquée... RESET...
 
Mais je suis mauvaise langue Visual n'a pas explicitement planté !

n°170615
godbout
Génial.
Posté le 03-07-2002 à 15:56:23  profilanswer
 

[:ddr555]


---------------
Super.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Problème de pointeur this, je capte plus rien :??:

 

Sujets relatifs
[W3C] Probleme avec HEIGHT[MySQL] Probleme incomprehansible !!
S.O.S probleme de insert avec access[W3C] Probleme d'attribut
[HTML] Problème de framesProblème bizarre en C
Problème de retour chariot dans la fonction mail[PHP] Probleme de concatenation .... URGENT
Probleme avec l'authentification HTTP[Probleme] exel
Plus de sujets relatifs à : [C++] Problème de pointeur this, je capte plus rien :??:


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR