Problem z wielkoscia tablicy

0

Witam mam problem przy zadeklarowaniu ilości int'ów w tablicy. Gdy deklaruje, że ma to być, to wszystko działa.

const int wielkoscTab = 10;
int liczba[wielkoscTab];

Określając wielkość tablicy = n, mam problem z kompilacją.

int n;
cin>>n
const int wielkoscTab = n;
int liczba[wielkoscTab];

Tak więc, moje pytanie brzmi, co zrobić żeby program się dobrze skompilował? Myślałem nad tablicą dynamiczną, jednak totalnie nie wiem jakby to miało wyglądać, proszę nakierujcie mnie :)

0

A jakie bledy pokazuje kompilator ?

2

W C++ nie ma VLA więc nie możesz zrobić tablicy o rozmiarze nie znanym w czasie kompilacji.

Użyj std::vector.

0

Dlaczego nie można ? Przed chwilą sprawdziłem i wszystko działa.

1

Widocznie Twój kompilator obsługuje VLA ale nie jest to w standardzie C++ i widocznie kompilator autora nie wspiera tego.

0

Dokładnie tak, nauczyłem się chyba złego nawyku, ponieważ użyłem ten górny zapis (ze starego standardu) w może 20 programach. Przy zmianie środowiska z Dev c++ na Visual Studio kompilator w VS wykrył błędy.

Uczyłem się trochę jak użyć tablic dynamicznych i gdy ją wykorzystałem, to kod się skompilował normalnie. Wygląda teraz tak:

void zadanie5()
{
	cout << endl;
	cout << "Zadanie 5"<< endl;
	int suma = 0;
	int tabRozmiar;
	cout << "Podaj ilosc elementow w tablicy: "; cin >> tabRozmiar;
	int * tab = new int[tabRozmiar]; // tablica dynamiczna, tzn. możemy zmienić jej wielkość w trakcie działania programu
	for (int i = 0; i < tabRozmiar; i++) {
		cin >> tab[i];
		suma += tab[i];
	}
	delete[] tab;
	cout << "Suma = " << suma;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1