The problem with it is that it has no application in programming. You will need to gather input from a user and define space for it on the heap, than return a pointer to the array. MSVC++ can kiss my ass. So use the new operator from the caller or else pass the array as an argument. End of story. On the other hand, if you use the C++ string than you can return it from the caller and a copy will be made.