Probleme de chaine de caractere

Signaler
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Voila j'ai un probleme avec une chaine de caractere j'aimerais pouvoir avec cette double boucle faire la copie d'un fichier XX.txt avec XX ayant une valeur entre 00 et 99, or j'ai un bug assez etrange ma boucle "s'emele" ( j prend la valeur 49 qd on fait appel la 2e fois a strcat... la je comprend plus trop mais je suis pas tres experimenté non plus :) Merci pour votre aide !

BOOL bRet;
char NewFileName[]={"c:\\Zipper_Vtfw32\\a.txt"};
char chaine[10]={'0','1','2','3','4','5','6','7','8','9'};
char FileName[]={"c:\\TEMP\\b.txt"};

int i=0,j=0;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
char FileName[]={"c:\\TEMP"};
CString minichaine = chaine[i];
strcat(FileName,minichaine);
minichaine = chaine[j];
strcat(FileName,minichaine);

bRet = CopyFile(FileName,NewFileName,0);
if(bRet)
break;
}
if(bRet)
break;
}

2 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
que vient faire un CString en plein milieu de tout ca ?
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
char FileName[]={"c:\\TEMP"};

> le compilo alloue exactement la taille de la chaîne (à l'alignement près) > si tu rajoute des trucs après par strcat tu écrase la mémoire qui se situe après.

char FileName[256]={"c:\\TEMP"};
=> alloue 256 caractères pour la chaîne, tu peux rajouter ce que tu veux.