Problem ved oprettelse af mapper / String 2 Char
Jeg bruger følgende funktion til at konvertere en mappe-sti til char:char *stoc( string stringtekst )
{
int length = stringtekst.length(), i;
char *chartekst = (char *)malloc(length);
for( i=0; i<length; i++ )
chartekst[ i ] = stringtekst[ i ];
chartekst[ i+1 ] = '\0';
return chartekst;
}
Og følgende function til at oprette en sti af mapper, med deres undermapper:
void CreateDir(char* Path)
{
char DirName[256];
char* p = Path;
char* q = DirName;
while(*p)
{
if (('\\' == *p) || ('/' == *p))
{
if (':' != *(p-1))
{
CreateDirectory(DirName, NULL);
}
}
*q++ = *p++;
*q = '\0';
}
CreateDirectory(DirName, NULL);
}
Når Jeg fx har
string str_path = "mappe\\undermappe\\mappe"
CreateDir( stoc ( str_path ) );
Mit problem er imidlertidigt at der går noget galt et sted :(
mapperne bliver oprettet, men den sidste mappe i stien, får tilføjet et mystisk 'Y' tegn ??
jeg har på fornemelsen at det er NULL tegnet i Char arrayet som er skyldner, men kan ikke selv finde problemet