为什么这不起作用:
SomeClass::SomeClass(char *lit) //Ctor
{
str = new char[strlen(lit)+1]; // str is a pointer to char in SomeClass
strcpy(str,"have");
cout << str << " " << "In Ctor" << " +Size=" << strlen(str)<< endl;
}
上面的代码显示了一个长度为 0 的字符串。但是这段代码有效:
SomeClass::SomeClass(char *lit)
{
char newstr[strlen(lit)+1];
strcpy(newstr,"have");
cout << newstr << " " << "In Ctor" << " +Size=" << strlen(newstr)<< endl;
}
这是完整的代码。
编辑:
添加到 Ideone 的链接,在我回答问题后 OP 删除了该链接。
没有源代码的链接,这个问答是没有用的。