begin process at 2012 05 29 06:28:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Où est l'abbhération informatique sur ces ***** de pointeurs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Où est l'abbhération informatique sur ces ***** de pointeurs

lundi 6 février 2006 à 20:27:54 | Où est l'abbhération informatique sur ces ***** de pointeurs

MasterShadows

Salut à tous et à toutes,
Je ne sais pas comment j'aurais du nommer le topique mais en fait pouvez vous me dire où est l'abbhération informatique là dedans :
 
#include <stdio.h>
 
void CopieChaine(char * pdest, char * psrc)
{
 while(*psrc != '\0') // Tant que le caractere de la chaine source n'est pas
      // un ensemble vide
 {
  *pdest = *psrc; // On met la valeur de psrc dans pdest
  *psrc++; // On incremente psrc
  *pdest++; // On incremente pdest
 }
 
 if(*psrc == '\0')
  pdest[*psrc] = '\0';
 
}
 
int main()
{
 char source[512]/*="Un beau dimanche"*/;
 char *destination;
 char indic='o';
 
 do  
 {  
  // on rentre la chaine  
  printf("Veuillez rentrer une chaine de caractere :\n");  
  gets(source);
   
  printf("%s\n", source);
 
  CopieChaine(destination, source);
   
  // on affiche la source et la destination
  printf("Chaine source = %s", source);
  printf("\nChaine destination = %s\n", destination); 
 
  printf("'q' pour quitter\n");  
  scanf("%c", &indic);
   
 }while(indic != 'q');  
 
 return 0;  
}
 
Mon prof prétend que ce qui est écrit en rouge ne devrait théoriquement pas marché, car il nous a dit que *chose renvoie en fait une adresse donc dans cet exemple eh ben , je devrais l'avoir dans l'os, mais si vous compilez ce programme, miracle, il marche à merveille...  et si je remplace *pdest++ et *psrc++ par pdest++ par psrc++, mon programme ne fonctionne plus
 
Pouvez vous m'expliquer en détail ces quelques lignes. Merci...

lundi 6 février 2006 à 20:33:16 | Re : Où est l'abbhération informatique sur ces ***** de pointeurs

wxccxw

Membre Club
pas obliger de faire 3 topics pour poser ta question !
ps : Rien est en rouge :)
lundi 6 février 2006 à 21:02:46 | Re : Où est l'abbhération informatique sur ces ***** de pointeurs

bouba

Y'a aucun problème au niveau de la compilation à mon avis. Par contre c'est stupide de faire
  *psrc++; // On incremente psrc
  *pdest++; // On incremente pdest
Ce que l'on veut ici c'est une copie de chaîne
donc
  psrc++;
  pdest++;
Sinon, c'est balot, le programme ne plante pas mais aucune copie n'est faite, seule la valeure '\0'-1 sera copiée dans *pdest, les pointeurs ne serait pas incrémentée, pour sortir de la boucle il faudrait attendre que psrc[0] vale '\0'.
Puis la condition
if(*psrc == '\0')
est inutile puisque l'on sorte du while avec pour valeur de *psrc 0. Mettre directement
pdest[*psrc] = '\0';  

Voilà, pas grand chose à dire de plus.

Bouba.
lundi 6 février 2006 à 21:14:04 | Re : Où est l'abbhération informatique sur ces ***** de pointeurs

MasterShadows

Y'a 3 topics parce mon pc a planté.
Mon programme fonctionne car quand j'écris coucou, il me renvoyé bien en sortie coucou.
En fait, on pouvait remplacer ça :

while(*psrc != '\0') // Tant que le caractere de la chaine source n'est pas
      // un ensemble vide
 {
  *pdest = *psrc; // On met la valeur de psrc dans pdest
  *psrc++; // On incremente psrc
  *pdest++; // On incremente pdest
 }

par ça :
while(*psrc) // Tant que le caractere de la chaine source n'est pas
      // un ensemble vide
 {
  *pdest = *psrc; // On met la valeur de psrc dans pdest 
  psrc++; // On incremente psrc 
  pdest++; // On incremente pdest
 }

ou encore
while(*pdest++ == *psrc++)

Enfin, marci quand meme

mardi 7 février 2006 à 10:02:05 | Re : Où est l'abbhération informatique sur ces ***** de pointeurs

louis14

ce qui m'étonne le plus dans ce code , c'est qu'il n'y a pas de réservation de mémoire pour la destination. déjà à la déclaration
char* destination = 0;
en rentrant dans la fonction :
-si destination est différent de 0 on désalloue la mémoire et on refait une allocation de la taille de source. puis on recopie.

louis14


Cette discussion est classée dans : source, destination, char, pdest, psrc


Répondre à ce message

Sujets en rapport avec ce message

Petit Bug [ par LordBob ] Bonjour a tous,voici deux fonctions:#include #include // Variableschar SourceFile[1024];char DestinationFile[1024];<b Un problème d'ouverture de fichier sous C [ par Flo001 ] Rien que de la bidouilleVotre texte ICIBonjour a tous...je suis étudiant un Gestion des télécommunications et de réseaux....Je commence tout juste à p Les fichiers [ par AngeloVivaldi ] J'utilise la méthode suivante pour copier un fichier vers une destination : FILE * source; FILE * desti; source = fopen(/* blabla */) /* blabla ça concerne la lecture et l'ecriture sur un fichier et ... [ par wfish ] voila mon pb :j'ai fais un ptit prog de traitement de fichier. il sert à mettre certaines infos prises dans un fichier et les mettre dans un autre !!1 splitter de fichier [ par 24Karas ] salut à tousEn fait je fais un splitter de fichier mais j'ai un probleme. il me rajoute 1 octet sur la découpe et 1 octet par fichier pour la reconsti Sources Visio-conférence [ par jockos ] Est-ce que vous savez ou je peux trouver des sources de programme de visio-conférence en C++ si possible ou dans un autre langage sinon...?Merci beauc liste chainée et lecture d'un fichier txt [ par whiteknight ] Bonjour j'ai un probleme pour charger des données depuis un fichier texte, les données recupérées doivent etre stocké dans un liste chainée déclaré ai lire dans un fichier [ par skeul ] Bonjour,je rencontre qqs difficultés a faire une fonction qui lit un fichier et qui rentre la chaine de caractere dans un tableauy a comme un probleme developpement ftp [UNIX] [ par twolf ] Bonjour a tous tout d'abord je suis a la recherche de source en C ou d'info (en francais si possible) qui permette de créer ce source sous UNIX le but Recherche source [ par cloogy ] Je recherche les sources d'un prog openGL qui modélise un moulin a vent ou un moteur a explosion....merci bcp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales