これが機能しない理由:
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;
}
これが完全なコードです。
編集:
質問に答えた後にOPが削除したIdeoneへのリンクを追加しました。
ソース コードへのリンクがなければ、この Q&A は役に立ちません。