我需要制作一个2D数组,但问题是我需要使用字符串大小作为数组的大小。到目前为止,我做到了这一点,但我一直得到错误“表达式必须具有恒定值”。我的程序需要从txt文件中读取一个字符串,然后使用字符串长度/大小来表示2D数组大小。例如:我在txt文件中写了“hello”,长度为5.现在我需要使用这个长度并将其存储为变量N并将其用作2D数组的维度。 这个例子怎么做呢?
int main()
{
string s;
ifstream myfile("palindrome.txt", ios::out); //reading my txt file
if (myfile.is_open())
{
getline(myfile, s); //storing string in variable s
}
myfile.close();
int l = s.size(); //reading size of string and storing to variable l
const int N = l;
int* R= new int[2][N + 1];
答案 0 :(得分:0)
这个怎么样?
const int N = l;
int** R = new int*[2];
for(int i = 0; (i < 2); i++)
{
R[i] = new int[N + 1];
}
循环两次,因为这是您在第一次初始化中设置行的内容。您需要在堆上分配其内存,但请记住,一旦完成,您将需要释放此内存。这可以通过以下方式完成:
for(int i = 0; (i < 2); i++)
delete[] R[i];
delete[] R;