Say Im making a class bah and I've made this constructor

Code:
bah::bah (char* c)
{
char * pointer = c;

}
Is the above a good constructor ?

Or would this be better :
Code:
bah::bah(char* c)
{
char* pointer = new char[strlen(c)];
for (int counter=0; counter < strlen(c); counter++)
   pointer[counter] = c[counter];

}
This has not be compiled, just of the top of my head.

Just wondering if there is any difference between them besides the obvious length of code ?