A String^ is a handle to a C++ object created on the garbage collected heap managed by the CLR.
-
String^ str = gcnew String("Hello");
-
You use the handle with the -> syntax for C++ pointers.
So, your immediate problem is just converting a String to a C string array of char.
Read up on interoperability here.