Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
6 juil. 2006 à 17:33
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
31 juil. 2006 à 13:30
Bonjours, cas fais 2 heures que je cherche mon bug et je ne trouve pas! C'est frustrant!
J'ai fais pas mal de test et je ne trouve rien.
Je met donc mon code sur le poste (cas fais longtemps que je n'ai pas fais de C, 4/5 ans, et là vraiment je ne m'en sort pas!)
PS : Je compile avec "Dev-C++".
PS² : Si vous avez une meilleur syntax (pour autre chose que le "fclose") vous pouvez bien sur me la faire parvenir.
Merci.
D'oh! Nuts!
Mmmmm...
DONUTS
J'ai failli oublier d’expliquer pourquoi j'ai heu ce genre d'erreur. Oui j’ai
fini par trouver (non pas sans énervement).
Bon ba vaux mieux tard que jamais.<!--[if gte vml 1]><v:shape id="_x0000_i1026"
type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"
o:href="/imgs2/smile_blush.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
Tout d'abor il faux savoir que j'ai continué à développer comme si de rien
n'étais. Au bout de quelque fonction supplémentaire à mon programme j'ai tester
sans le printf(""); et plus de problème??????
<!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" alt=""
style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image002.gif"
o:href="/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]-->
Par la suite j'ai rencontré d'autre erreur très étrange (l'adresse mémoire
0x000000 ne peut pas être read, et autre adresse 0xfffffff). J'ai fini par vérifier
ce que l'on peut dire sur mon compilateur (Dev-C++) sur le forum de 01net (là
ou j'ai récupérer Dev-C++) et un message disais qu'il n’était pas compatible
avec Win XP. J'ai donc réinstaller sur un 98 et hoooo miracle plus de bug (pas
1 seul <!--[endif]-->mon code était tout bon ). Donc mes bugs semblaient venir de mon OS.
Il me semble pourtant que quelqu’un ici avais fais le test avec Dev-C++ sur XP
et qu'il n'avais pas hue de problème, peut être cas viens du SP (je suis en
SP2) ou d’autre chose, enfin bon<!--[endif]-->
Cois qu'il en sois maintenant je développe et compile sur un Win 98 et je n'ai plus
le moindre problème.
Si quelqu'un connais un compilateur gratuit compatible XP je suis preneur (pas
Visual C++ version Express je l'ai déjà et je n’aime pas, chacun ses gout).
Dans tout les cas MERCI à tous ceux qui on prit du temps pour m'aider (cas fais
plaisir) VIVE <st1:personname productid="LA COMMUNAUTE" w:st="on">LA COMMUNAUTE</st1:personname>
de CodeS-SourceS!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 juil. 2006 à 20:07
Pense au but à atteindre, ça t'évitera d'amuser le processeur avec des instruction inutiles.
Tempon[0] = '<';
Tempon[1] = '\0';
strcat(Tempon, Balise);
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 09:07
Heeee, AlexMAN, je passe un "char **" car c'est un
pointeur sur pointeur. Si non comment je fais pour changée l'adrs contenu par
mon pointeur "Texte"??? En passant un "char *" et
"texte" ma fonction appelante (main) ne pourra pas accéder à mes
données puisque je passe à ma fonction (LitDonneeBaliseFichier) l'adrs contenu
dans "texte" et pas l'adrs de "texte"??? A moins que je ne
fasse erreur???
Oui BruNews effectivement je vais tenter d'optimiser un peut plus mes modifications/copies
de chaine.
Merci à vous deux pour vos réponses mais j'ai toujours mon problème. Mon code
plante au "fclose" (Windows m'affiche une fenêtre "Projet1.exe a
rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le
désagrément encouru.") et je ne comprend vraiment pas pourquoi.
D'oh! Nuts!
Mmmmm...
DONUTS
Vous n’avez pas trouvé la réponse que vous recherchez ?
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 7 juil. 2006 à 09:09
Salut,
une question me taraude : pourquoi les types de retours de toutes tes
fonctions (sauf le main) sont des unsigned long (typedefé en
ErreurCode) est qu'a chaque fois tu fais un return 0 ? Tes fonctions
devraient être de type void !!!
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 09:15
Toute mes fonction on un ErreurCode comme type de retour car je vais faire une remonté d'erreur (qui n'est pas encors en place bien sur mais prévue). Oui j'ai tester mon fopen et il me renvoie une ards (j'avais pensé aussi que ca pouvais venir de cas mais c'est une bonne remarque, je vais tester la valeur de retour du "fopen" et ne rien executer si c'est 0).
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 09:23
Je confirme que le fichier est bien ouvert (et en plus
j'affiche bien la donnée de ma balise, alors...)
A oui autre remarque : mon programme ne plante pas si je n'exécute pas LitDonneeBaliseFichier ce que j'avais tester :
Allouer de la mémoire à texte
Lire les 20 premiers carac de mon
fichier (les metre dans "texte")
Se déplace dans le fichier
Afficher "texte"
Libérer la mémoire de texte
Fermer le fichier
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"
o:href="/imgs2/smile_tongue.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[if gte vml 1]><v:shape id="_x0000_i1026"
type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:\DOCUME~1\VIW\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"
o:href="/imgs2/smile_tongue.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->Et là tout ce passe pour le mieux!!! Je ne comprends
vraiment pas et cas vas finir par me rendre (tout du moins encor plus que maintenant)
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 7 juil. 2006 à 10:12
Peux tu trouver la ligne qui provoque l'erreur en mettant des printf un peu partout.
Sinon, dans ton cas ca peux passer, mais pense toujours dans tes malloc a mettre des sizeof, je m'explique:
Tempon = (char *)malloc(strlen(TextAChercher));
Tu as de la chance que ca passe car sur un Windows 32Bits (surquoi tu
dois etre a mon avis) sizeof(char) == 1. Mais pense toujours à le
mettre ca te sauveras la mise un jour
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 10:32
Heee, question béte :
"malloc(12);" et equivalent à "malloc(zizeof(char) * 12);" au niveau quantité de mémoire, mais au niveau temps d'execution aussi?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 10:35
Heeee, [auteurdetail.aspx?ID=304809 turnerom] je sais ou plante mon code, au "fclose", ce qui me posse problème c'est de savoir pourcois. (mettre des printf partout c'est fais et à priorie tout ce passe bien, jusqu'au "fclose" en tout cas).
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 10:45
OK, je pensais pas (hé je suis un peut null quand même). Du coup je pense que mettre le zizeof par défaut dans tout les malloc est plus prudant.
Heeeee, [auteurdetail.aspx?ID=19734 vecchio56]tu dit que zizeof(char) est traduit en 1 mais la multiplication? Le system ne calcul peut être pas de multiplication par 1 mais c'est envisagable non??? Dans tout les cas il semble evidant que si ce calcul s'effectue il est pas bien long donc je ne revien pas sur ce que je vien d'ecrir : il est plus prudant de mettre le zizeof par défaut dans tout les malloc.
Merci.
Je plante toujours sur ce *µù£$¤% de fclose!
En plus mon chef m'a dit que si je défenestrais mon PC j'étais
viré. Pourtant des fois ca me démange.
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 7 juil. 2006 à 11:05
Alors là je comprand vraiment plus rien!!!!!!!!!!!!!!!
Je fesais des testes et j'ai donc ajouter des printf et system("PAUSE") et je plante plus?????????????????????????
Si j'ajoute " printf ("\nCherche la position de %s",Tempon);" dans "LitDonneeBaliseFichier" juste avant la ligne "ChercheTextDansFichier (Fichier, Tempon, &PositionDepart);"
La c'est pas mon PC mais moi qui vais faire un vol plané (c'est l'aterisage qui m'inquiéte)!
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 7 juil. 2006 à 11:09
La multiplication est faite a la compilation et non a l'exécution. De la même manière, ca ne change rien d'écrire int a=1+1+1 ou int a=3, le même code sera généré, donc même tetmps d'exécution.
turnerom
Messages postés492Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention12 janvier 20121 7 juil. 2006 à 11:15
Wikipedia :
<li>Le type char </li>
Il s'agit du type usuel pour représenter un caractère. Aucun système
de représentation n'est imposé pour les caractères et on utilise en
général des dérivés du code ASCII. Un caractère doit juste être codé
sur au moins 8 bits. Il est assez usuel toutefois d'utiliser exactement
8 bits pour représenter un char.