Bonjour,
voila mon problème :
j'ai une fonction qui prend en paramètre un const char * chemin.
en début de la fonction je copie ce chemin dans une variable char * chemin_temp;
jusque là aucun soucis ...
j'affiche chemin et chemin_temp ils sont identiques.
dans mon programme je modifie chemin_temp pour une raison x, et la survient une chose magique mon chemin est aussi modifié...
Or jusqu'a présent une variable définit en const ne se modifié pas !!!
Est ce quelqu'un sait pourquoi j'ai cette incohérence??
voici mon bout de code :
voici ce que j'ai dans ma console dos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void traiter_fichier(const char * chemin){ //declaration des variables char chemin_temp[255]; memcpy(chemin_temp,chemin,strlen(chemin)+1) ; cout<<"chemin : "<<chemin<<endl; system("pause"); cout<<"chemin temp avant modif : " <<chemin_temp<<endl; strcpy(chemin_temp,"toto"); cout<<"chemin apres modif de chemin temp\n"<<chemin<<endl; //chemin modifié system("pause"); }
chemin :C:\\Documents and Settings\\Antony\\Bureau\\Test\\doc1.txt
Appuyez sur une touche pour continuer...
chemin temp avant modif : C:\\Documents and Settings\\Antony\\Bureau\\Test\\doc1.txt
chemin apres modif de chemin temp
C:\\Documents and Settings\\Antony\\Bureau\\Test\\doc1.♠
Appuyez sur une touche pour continuer...
je ne sais pas par quelle magie j'ai mon const modifié et surtout il sort d'où ce pique???
Je développe sous Dev-C++ version 4.9.9.2
J'ai déjà essayé d'utiliser strcpy, strdup pour copier le chemin, sans succès toujours la même incohérence...![]()
Partager