C++ jaka maksymalna wielkość tablicy

Witam mam pytanie czy w C++ jest jakieś odgórne ograniczenie na wielkość tworzonej przez użytkownika tablicy, czy tez wielkość ta jest ograniczona jedynie zasobami pamięci. . .

teoretycznie - brak, praktycznie im większa tablica tym więcej potrzeba pamięci i tym wolniej działa aplikacja

Jest ograniczona, tylko już niepamiętam do ilu, gdy używałem Dev’a to miałem ten problem, ale ta wartość jest dość duża (~1000000) :wink:

Jest ograniczona ilością pamięci, kompilator powinien zgłosić błąd albo operator new rzuci wyjątek albo malloc zwróci NULL jeśli będziesz chciał zarezerwować za dużo. Przykłady z g++:

int arr[INT_MAX];

// maxa.cpp:7: error: size of array ‘arr’ is too large

char arr[INT_MAX];

maxa.cpp:4: error: total size of local objects too large

W VS jedna alokacja musi być mniejszą bądź równa 0x7FFFFFFF bajtów(~2GB), w przeciwnym wypadku kompilator wywali błąd(jeśli wpiszemy rozmiar na stałe), ew. poleci bad_alloc.

Mimo wszystko nie udało mi się zaalokować pamięci w jednym kawałku o takim rozmiarze, zawsze rzuca bad_alloc.