No. Primero te refieres a char*, que no es char. Segundo, tienes que reservar la memoria necesaria para ello, es decir:
char aux[256];
strcpy(aux
, SourceFile
->FileName.
c_str());
Ten en cuenta que char[] es lo mismo que char*. Ahí te cabrían como máximo 255 caracteres de ruta (+1 caracter nulo de terminación obligatorio). Eso sí, el espacio reservado siempre serán 256 bytes (chars), independientemente de si la ruta tiene 5 o 255 caracteres. Como optimización podrías primero comprobar la longitud de la ruta y luego reservar la memoria correspondiente (que es lo que se haría internamente con el ejemplo de Eternal Idol) usando malloc(), sólo que habría que estar al loro y liberarla una vez hayas acabado de usarla.
La mejor opción sin duda es la que te indica Eternal Idol, ya que es con C++ (que es lo que estás usando) y no C a pelo (que es como quieres hacerlo).
Saludos