通过int变量设置char []的大小

时间:2016-07-05 08:37:12

标签: c++ arrays char

我已经做了很多关于如何使用数据类型int的变量设置数组大小的研究,但是还没有找到任何有用的东西。

所以这里有一个我试过的例子,它给了我一个错误说"expression must have a const value"

char * charptr = "test";
int sze = strlen(charptr);
char str[sze];

对不起,如果这个问题很愚蠢,我还是c++

的新手

尽管如此,我们将不胜感激!

2 个答案:

答案 0 :(得分:2)

您必须使用动态分配。

int size = 1337;
char *str = new char[size];

通过执行此操作,程序将在运行时在堆上分配内存。

你不能char str[size]因为size在编译时是未知的,然后编译器不知道它必须在堆栈上分配多少空间。

当然记得在使用后delete [] str

答案 1 :(得分:2)

sze编译时不知道; C ++ 支持可变长度数组,因此char str[sze];无效C ++。

一种解决方法是使用char* str = new char[sze];,但这会导致您遇到问题,因为必须与后续delete[] str;平衡此问题,否则您将泄漏内存。< / p>

如果可以,最好使用内置字符串类std::string