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

Create new char[] at function with length as parameter

本文关键字:参数 函数 创建 char      更新时间:2023-10-16

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

代码:

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

我得到的错误:

  • 预期常量表达式

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

  • 'myCharArray' : 未知大小

我已经尝试了以下方法:

  1. 在函数中给出一个初始值。
  2. const添加到int值。

注意:在此任务中,我不能使用 std::string ,尽管我希望如此。

如果在构造函数之外使用 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;
}