-
In C/C++ läuft das ein wenig anders:
malloc() legt intern verwaltete Speicherblöcke an und fordert neuen Speicher, wenn alles belegt ist oder eben nicht ausreicht.
free() gibt nur den Speicherblock frei, und trägt ihn in eine Kette der freien Blöcke ein, kann aber den Speicher nicht physisch freigeben.
Der nächste malloc() / realloc() sucht den nächsten freien passenden Block und belegt diesen dann, wenn nichts groß genug, wird eben neuer Speicher angefordert.
Der Speicher wird insgesamt erst freigegeben, wenn das Programm tatsächlich aus der Aktivierungsgruppe entfernt wird (ähnlich *INLR=*ON).
Je nach Implementation gibt es hier halt die berühmten Memory-Leaks, da durch ständiges malloc()/free() der Speicher stark fragmentiert werden kann.
Similar Threads
-
By Fucasdreh in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 10-01-07, 14:12
-
By kr1s in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 08-09-06, 12:59
-
By programmer06 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 14-07-06, 14:05
-
By STamms in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 12-05-06, 09:54
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks