如何在函数或构造函数中创建新的char[]
?当我需要数组大小时,我将通过参数获得?
代码:
MyString::MyString (int length=10)
{
char myCharArray[length];
}
我得到的错误:
预期的常量表达
无法分配常量大小为0的数组
' myCharArray' :未知大小
我已经尝试了以下内容:
const
添加到int
值。注意:在此任务中,我无法使用std::string
,但我希望如此。
答案 0 :(得分:1)
如果您在构造函数中使用myCharArray,请将其定义为类字段。此代码可满足您的需求。与Java不同,C ++中没有垃圾收集器。您需要在使用后释放内存。
MyString::MyString (int length=10)
{
char *myCharArray;
myCharArray=new char[length];
.....
delete[] myCharArray;
}
<强>更新强>
根据Ulrich Eckhardt的建议:
MyString::MyString (int length=10)
{
char *myCharArray=new char[length];
.....
delete[] myCharArray;
}