Member 12601913 Ответов: 2

Я получаю ошибку "выражение должно иметь постоянное значение" в строке " int L[m + 1][n + 1];". не могли бы вы мне помочь


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;

int max(int a, int b);
int lcs(char *X, char *Y, int m, int n)
{
	int L[m + 1][n + 1];
	int i, j;


Что я уже пробовал:

Я попробовал эту программу в visual studio 2015 и получаю эту ошибку

2 Ответов

Рейтинг:
1

CPallini

Вы случайно не используете, Visual C++- Взгляните-ка на это Включение VLAs (массивов переменной длины) в MS Visual C++? - переполнение стека[^].


0x01AA

Классный один а 5. Хорошо, что я не ответил на этот вопрос :) Бруно

CPallini

Спасибо.

Рейтинг:
1

Patrice T

C/C++ не допускает такого массива переменного размера.

int L[m + 1][n + 1];

Допускаются только массивы фиксированного размера.
Для массивов не фиксированного размера необходимо использовать указатель и выделять память вручную.

Вернитесь к основам C/C++
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]