Tous fonctionne, il affiche a l'écrant la variable modifié avec le text
dans le sens inverse et puis pouf juste après mon programme plante
(surement un acces violation) mais je ne vois pas ou. Je l'ai déjà
utiliser dans un de met programme mais la la variable D_ptTextNoReverse
etait déclarée en global (char D_cText[350]) et donc on ne passait pas
en paramettre un pointeur de type char mais bien la variable elle même.
Je soupçone que le problème doit se trouver la mais je ne vois pas
comment. Je voulait juste généraliser ma fonction pour la mettre dans
mon .h snif lol
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 nov. 2005 à 12:03
non il n'y est pas, mais la n'est pas le problème vu que cette
procédure marche très bien quand je transmet direct une variable et sa
taille (ex :char variable[10]) mais pas avec un pointeur char. je pense
que le problème vient de la. Surtout que j'ai fait ce que tu a dit mais
que le résultat est le même, plantage :'( snif
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 nov. 2005 à 14:00
Si chaine vide
D_iSize vaut 0 donc D_ia=D_iSize-1; met bien D_ia à -1, non ?
char *c = buf;
c pointe sur adresse de buf donc sur buf[0]
So buf est "ABC"
c pointe sur adresse du 'A'
donc *c vaut 'A'
while(*c) c++;
tant qu'il ne pointe pas sur 0 final on pousse c, ok ?
Faut absolument étudier les pointeurs si tu veux du code performant.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 nov. 2005 à 14:49
BuNews, dezo de te contredire mait j'utilise la chaine vide comme tu
dit est simplement un chaine de car ou je vais mettre le mot
reconstituer temporairement avant de l'affecter a la bonne variable, je
l'initialise a vide c'est tout. Le strlen est la taille de la chaine qu
l'on reçoit a moin d'etre un fiaifait malin personne ne voudrai
inverser un text vide lol ;).
Pour ton exemple j'avai tout compris sauve le while (*c) je ne l'avait
pas vu comme ça. Enfaite si je me trompe pas, la tu utilise
l'arithémitque des pointeurs c'est bien cela? en faisant pas exemple
c++ c'est égale a c+1 fois la taille de c(donc du type) ce qui fait
avancer et donc passe a la lettre suivante c'est bien cela?
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 nov. 2005 à 15:57
Croti, le problème n'est mm pas la, ta procédure et la mienne
fonctionne bien, le problème est a l'affichage, je fait un
printf("%s",text); et boum ca plante, si je le supprime en l'aissant
l'apelle de la fonction cela marche, donc c'est ca qui ne va pas, et le
pis c'est que si je le met juste après l'apelle de la procédure ca
m'affiche le texte a l'enver et puis ca plante, mais si je le change de
place, ca met des caractère aléatoire et ca ne plante pas, je comprend
absolument pas le problème.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 nov. 2005 à 16:19
Oki merci BruNews, en faite j'ai retiré l'apelle d'une fonction
randomize que j'avai faite, ca marche impec, je l'ai remise après ca
marche encore impec :s comment pourrai je faire pour que cela ne se
reproduise plus? car ca fait perdre du temps , on croi que c'est
dans le code mais pas du tout.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 nov. 2005 à 16:37
Une erreur sur un prog se situe toujours dans son code, quand on ne trouve pas vite fait faut recommencer le tout et on y gagne en temps.
Soit tu utilises un debuggueur pour tracer l'exécution de ton prog.
Soit, comme moi, je fais chaque fonction séparément dans des mini progs de test en essayant de passer absolument nimporte quoi en param et ça ne doit pas planter. Une fois au point je l'intègre au vrai prog. L'avantage est que tu te constitueras un jeu de fonctions solides et prêtes à l'emploi.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 nov. 2005 à 16:43
Oui , mais je ne suis pas reponsable du placement des données en
mémoires, donc c'est pas ma faute si ici j'écrasai une zone de mémoire.
héhé BruNews on a du a un moment capter la mm idée, c'est ce que je
fait aussi surtout pour mes fonction et procédure que je généralise et
que je met ds un header perso. Ici j'avai juste vite repris le
programme de test de ma fonction randomize et j'avait ajouter le test
de celle-ci. Ce que je ne comprend pas cette fonction et cette
procédure est crée ca, il n'y a rien pourtant ds ma fonction randomize
qui ferait ca, c'est une bête fonction lol il n'y a rien de spéciale.