Dzień dobry. Całkiem niedawno zacząłem naukę programowania. Prosiłbym aby Państwo mi powiedzieli, czy dobrze rozumiem różnicę między tablicą statyczną, a dynamiczną. No więc: tablica statyczna to taka której rozmiar jest ustalany na etapie kompilacji.
int main()
{
int size;
cin>>size;
int tab[size];
return 0;
}
Zmienna size ma losową wartość, powiedzmy 3800, więc kompilator rezerwuje pamięć dla tylu elementów. Nie mogę cin ustalić rozmiaru, ponieważ on został już ustalony, na etapie kompilacji. Zatem ten zapis jest skrajnie niepoprawny, choć kompilator nie zgłosi błędu. Natomiast:
int main()
{
int size;
cin>>size;
int*tab=new int[size];
delete[]tab;
return 0;
}
tak już mogę zrobić, bo dynamicznie to znaczy w trakcie działania programu. Zatem ten zapis jest poprawny.