我在下面粘贴的代码中收到错误。 它说:
1.表达式必须具有常量值。
2.表达式没有评估为常数
#include <iostream>
#include <string>
using namespace std;
int main()
{
string ko = "flip";
int kosize = ko.size();
char arra[kosize] = { 1,3,2 };
cin.ignore(numeric_limits<streamsize>::max(),'\n');
return 0;
}
那么如何根据字符串的大小分配数组呢?
答案 0 :(得分:2)
那么如何根据字符串的大小分配数组呢?
您可以使用动态分配的数组,例如:
char* arra = new char[kosize];
arra[0] = 1;
arra[1] = 3;
arra[2] = 2;
但是,使用动态分配的内存会给您带来管理内存的负担。你必须确保释放内存。
最好使用std::vector
。
std::vector<char> arra(kosize);
arra[0] = 1;
arra[1] = 3;
arra[2] = 2;