在函数中创建新的char [],其长度为参数

时间:2015-01-17 16:40:13

标签: c++ arrays function char parameter-passing

如何在函数或构造函数中创建新的char[]?当我需要数组大小时,我将通过参数获得?

代码:

MyString::MyString (int length=10)
{
    char myCharArray[length];
}

我得到的错误:

  • 预期的常量表达

  • 无法分配常量大小为0的数组

  • ' myCharArray' :未知大小

我已经尝试了以下内容:

  1. 在函数中给出初始值。
  2. const添加到int值。
  3. 注意:在此任务中,我无法使用std::string,但我希望如此。

1 个答案:

答案 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;
}