strCat

Voir le sujet précédent Voir le sujet suivant Aller en bas

strCat

Message  didi le Mer 20 Oct 2010, 23:33

j'ai une erreur dans TD3 strCat

Code:
void strCat(char *str1,char *str2)   {
   char * result = str1;
   while(*(str1++) != '\0')
      printf("%c",*(str1-1));
      str1 = str1 -1;
   while((*(str1++) = *(str2++)) != '\0')
      printf("%c",*str1);
   str1 = result;


}

affiche le 1 ère printf de ( premier while est OK )

mais il ne rentre pas dans 2 ème while (une boucle infini ou sais pas )
quelqu'un une idée ..?
bonne sorée ... Very Happy

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: strCat

Message  Bill le Jeu 21 Oct 2010, 02:00

Bah, pour savoir si tu fais une boucle infinie ou si tu ne rentres pas dans ta boucle (ou encore autre chose, j'ai pas regardé ton code, j'ai un peu trop la flemme ^^) il existe un outil bien utile qui est le debugger, tu verras directement ce qui se passe dans ton code.
Bonne soirée, enfin nuit.

Bill

Nombre de messages : 73
Age : 27
Prénom : Kevin
Statut : Ancien
Localisation : Brussels
Date d'inscription : 07/10/2009

Revenir en haut Aller en bas

Re: strCat

Message  mcd le Jeu 21 Oct 2010, 08:57

Si ton IDE permet d'indenter ton code, demande-lui de le faire.
L'indentation n'a pas de sens pour le compilateur mais permet au lecteur de plus vite identifier le problème... Wink


Dernière édition par mcd le Jeu 21 Oct 2010, 11:42, édité 1 fois

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: strCat

Message  smb le Jeu 21 Oct 2010, 10:24

@didi : sur base de quoi peux-tu dire qu'il y a une boucle infinie ?

Sur base d'un mauvais affichage dans ta 2ième boucle ?
En effet, printf("%c",*str1); va afficher le contenu d'un char qui n'a pas encore reçu le transfert !

De plus, ta fonction strCat ne devrait-elle pas retourner quelque chose ?
Va voir le prototype de la fonction standard.

A qui sert str1 = result ; ?
A rien ! Car tu places une adresse (result) dans une variable locale (str1) qui meurt immédiatement après !

De plus, je serais curieux de voir avec quoi tu fais le test de cette fonction!


Neutral

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: strCat

Message  nvs le Jeu 21 Oct 2010, 11:09

mcd a écrit:Si ton IDE permet d'indenter ton code, demande-lui de le faire.
L'indentation n'a pas de sens pour le compilateur mais permet au lecteur de plus vite identifier le problème... Wink
pour bien formater le code : Ctrl + Shift + F :


pour configurer le style :









Idea

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: strCat

Message  Contenu sponsorisé Aujourd'hui à 14:30


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum