[C++] Text wird falsch ausgegeben

07/07/2011 22:04 neo305#1
Hi,

ich habe diesen char definiert.

Code:
char* test;
Und in dieser Funktion wird ihr ein Wert zugewiesen:

Code:
void GetPath(int fileNum)
{
HANDLE fHandle; 
WIN32_FIND_DATAA wfd; 
int counter=0;

fHandle=FindFirstFileA("C:\\Test\\*",&wfd); 


while (FindNextFileA(fHandle,&wfd)) 
{ 
    if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
    { 
    } 
    else 
    { 
	   if(fileNum==0){test = wfd.cFileName;}
	   if(fileNum==counter){test= wfd.cFileName;}
	   counter+=1;
    } 
} 
FindClose(fHandle);
}
Doch wenn ich test in einer MessageBox ausgebe:

Code:
MessageBoxA(0,test,"Test",0);
Gibt er immer irgendwelche Sonderzeichen aus.

Hoffe ihr könnt mir helfen.
07/07/2011 23:22 vst0rm#2
'test' sollte ein array sein ;-)
Code:
char test[MAX_PATH];
07/07/2011 23:29 link#3
Bis zur MessageBox ist wfd.cFileName schon wieder überschrieben, da die Struktur lokal ist und auf dem Stack liegt/lag.
Also einfach char test[MAX_PATH]; strcpy(test, wfd.cFileName); benutzen