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 kann

    Nö, 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 anlegen

    Das 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 kann

    Das 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...


Anmelden zum Antworten