数组大小分配错误

Array size allocation error

本文关键字:错误 分配 数组      更新时间:2023-10-16

我在下面粘贴的这段代码中遇到了错误。它说:

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;
}

那么如何根据字符串的大小分配数组呢?

那么如何根据字符串的大小分配数组呢?

您可以使用动态分配的数组,例如:

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;