speicherverwaltung bezüglich pointer
-
Hallo
darf ich euch fragen in wie fern es einen unterschied macht wenn ich einen
speicher via pointeer reservier?
ich versteh dass sich der speicher wieder freigeben lässt und man
auch mehr performence damit erzielen kann
aber wie wird dieser unterschiedliche speicher gehandhabt
um deutlicher zu werden wenn ich via pointer ein array erstelle
kann ich auch GB an arrays anlegen
gibt es eine grenze an speicher die initialisiert werrden darf?Danke!

-
sebi91 schrieb:
ich versteh dass sich der speicher wieder freigeben lässt und man
auch mehr performence damit erzielen kannNö, mehr Performance wohl nicht (eher weniger), aber du kannst halt deutlich mehr Speicher nutzen, als der Stack dir zur Verfügung stellt.
sebi91 schrieb:
aber wie wird dieser unterschiedliche speicher gehandhabt
um deutlicher zu werden wenn ich via pointer ein array erstelle
kann ich auch GB an arrays anlegenDas war eine Frage, oder? Ich gehe mal davon aus. Ja, solange soviel Speicher am Stück verfügbar ist, kannst du auch so große Arrays anlegen.
sebi91 schrieb:
gibt es eine grenze an speicher die initialisiert werrden darf?
Dein verbauter Speicher und die Fragmentierung. Und das Betriebssystem hat eventuell auch eine Obergrenze. Beispiel: für 32-Bit-Prozesse unter 32-Bit-Windows kannst du nicht mehr als 2 GB insgesamt verbraten.
-
sebi91 schrieb:
darf ich euch fragen in wie fern es einen unterschied macht wenn ich einen
speicher via pointeer reservier?Was, wenn die Antwort "nein" ist?

ich versteh dass sich der speicher wieder freigeben lässt und man
auch mehr performence damit erzielen kannDas mit der Performance sei mal dahingestellt. In erster Näherung kostet die Speicherallokation und -deallokation erstmal Performance.
aber wie wird dieser unterschiedliche speicher gehandhabt
Google: heap vs. stack
um deutlicher zu werden wenn ich via pointer ein array erstelle
kann ich auch GB an arrays anlegen
gibt es eine grenze an speicher die initialisiert werrden darf?Das ist nicht deutlicher, sondern eine andere Frage. Ja, es gibt Grenzen. Ich nehme mal an, du meinst "alloziiert", nicht initialisiert. (Ist was ganz anderes, passt aber deutlich besser zum Thema deiner anderen Fragen) Die sind meist durch das Betriebssystem, deine verfügbare Hardware und evtl. auch durch den Compiler gegeben.
-
das erste und wichtigste anwendungs gebiet ist eigentlich:
Man muss die Größe nicht zur Compile Zeit wissen, sondern kann sie sich z.B. auch eingeben lassen...