C++ unendlich große Arrays?

3 Antworten

Die Größe von Arrays in C(++) ist nicht wirklich beschränkt, naja, die Elemente müssen halt noch indizierbar sein.

Je nach Platform kannst Du auch Arrays allokieren, die weit über die Größe des physischen Speichers hinausgehen.

------

On Second thought, Arrays jenseits de sphysischen Speichers könnten Dir um die Ohren fliegen, nutzt Du malloc() kann das durchaus klappen.

Wozu gibt's Pointer? Oder gleich Listenklassen aus der STL? Abgesehen davon gibt es für Arrays keine Größenbegrenzung, außer durch den Speicher und eben dass der Index zwischen 0 und einem durch den Indexerdatentyp vorgegebenen Maximum liegen muss.

In den meisten Fällen würde auch wenig Sinn ergeben, mit Array zu arbeiten, denn Arrays können nicht wachsen. Sie haben immer eine feste Größe. Entweder müsstest Du also permanent beim Hinzufügen das Array umkopieren (somit würde das Array maximal so groß werden können wie der halbe Arbeitsspeicher). Oder Du müsstest es direkt mit der gewünschten finalen Größe anlegen - dann würde Deine Anwendung ab Start den kompletten Speicher belegen.

Daher nimm eine dynamische Datenstruktur.

Ich weiss nicht, ob es generatoren gibt in C++. Versuch es mal damit.