Witam
Czy możecie mi wyjasnić dlaczego ten kod działa.
Jak to możliwe że tab[n] gdzie n podczas kompilacji jest nieokreślone (chyba jego wartość wynosi zero w tym konkretnym przypadku) tworzy tablice o rozmiarze wprowadzonym podczas działania aplikacji ?
Tab jest przecież tablica statyczną a jej rozmiar jest określany przy kompilacji - czy się mylę?
Ponoć - niestety nie mam możliwości sprawdzenia - Visual Studio nie przepuszcza tego kodu i zgłasza błąd a Dev C++ nie, jak to możliwe?
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Podaj ilosc liczb: " << endl;
cin >> n;
int tab[n];
for (int i = 0; i < n; i++)
{
cout << "Podaj liczbe " << (i + 1) << ": " << endl;
cin >> tab[i];
}
int pointer = n;
for(int i = 0; i<n;i++)
{
for(int j = 0; j<(pointer-1);j++)
{
if(tab[j]<tab[j+1])
{
swap(tab[j],tab[j+1]);
}
}
pointer--;
}
for(int i = 0; i<n;i++)
{
cout<<"Liczba "<<(i+1)<<": "<<tab[i]<<endl;
}
return 0;
}
Ejjjjjjjjjjjjmen