Salve ragazzi, ho un problemuccio con un puntatore malefico che ama farmi brutti scherzi, vi posto subito il codice

codice:
int Explore(char * directory, char * id){
char DATA[10256] = {NULL};
char DATAFILE[5000] = {NULL};
char DATADIR[5000] = {NULL};	
strcpy(DATA, directory); // strcpy cancella la stringa! Uff!
strcat(DATA, "^|^");
strcat(directory, "*.*");

Continua...
in sostanza, io passo come argomento alla funzione Explore un puntatore a char, contenente una directory, vorrei copiare questa directory all'interno della stringa data, ma, non appena supero il prototipo della funzione, char * directory non punta più alla directory, ma ad un indirizzo sconosciuto. Inoltre, se questo può servirvi, viene comunque copiato il valore puntato da directory in DATA, ma il debugger prima di copiare l'intero valore si blocca per N volte all'istruzione, dove N è uguale al numero di caratteri puntati da directory!
quindi devo premere la freccetta verde per un sacco di volte prima di proseguire all'istruzione successiva, dove però trovo directory come se fosse stato svuotato... Aiuto!