在以长度为参数的函数中创建新的 char[]
Create new char[] at function with length as parameter
如何在函数或构造函数中创建新的 char[]
?当我需要时,数组大小将与我通过参数获得的一样?
代码:
MyString::MyString (int length=10)
{
char myCharArray[length];
}
我得到的错误:
预期常量表达式
无法分配常量大小的数组 0
'myCharArray':大小未知
我已经尝试过以下方法:
- 在函数中给一个初始值。
- 将
const
添加到 int
值。
注意:在这个任务中我不能使用 std::string
,尽管我希望如此。
如果您在构造函数之外使用 myCharArray,请将其定义为 class 字段。这段代码可以满足您的需求。与 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;
}
如何在函数或构造函数中创建新的 char[]
?当我需要时,数组大小将与我通过参数获得的一样?
代码:
MyString::MyString (int length=10)
{
char myCharArray[length];
}
我得到的错误:
预期常量表达式
无法分配常量大小的数组 0
'myCharArray':大小未知
我已经尝试过以下方法:
- 在函数中给一个初始值。
- 将
const
添加到int
值。
注意:在这个任务中我不能使用 std::string
,尽管我希望如此。
如果您在构造函数之外使用 myCharArray,请将其定义为 class 字段。这段代码可以满足您的需求。与 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;
}