我已经做了很多关于如何使用数据类型int
的变量设置数组大小的研究,但是还没有找到任何有用的东西。
所以这里有一个我试过的例子,它给了我一个错误说"expression must have a const value"
char * charptr = "test";
int sze = strlen(charptr);
char str[sze];
对不起,如果这个问题很愚蠢,我还是c++
尽管如此,我们将不胜感激!
答案 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
。