Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Heap anlegen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
07.12.2005, 12:08 Uhr
Sponge



Hallo,
ich möchte mir einen eigenen Heap anlegen, um so im Falle eines Falles den Speicher sauber zu hinterlassen. Unter Windows ist das relativ ein zu lösen mit HeapAlloc, HeapDestroy etc. Das Problem ist nun, dass diese in der winbase.h bzw. deklariert sind und somit unter Linux nicht vorhanden sind. Kennt irgendjmd ähnliche Funktionen unter Linux ?

Danke schon mal im Voraus
--
Es gibt 10 Arten von Leuten:
die, die das binäre System verstanden haben,
und die, die es nicht verstanden haben ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.12.2005, 13:10 Uhr
virtual
Sexiest Bit alive
(Operator)


Warum glaubst Du, daß Du den Speicher sauberer hinterlassen kannst als das Betriebssystem? - Ich nehme an mit "sauber" ist in etwa sowas gemeint, daß aller belegter Speicher wieder freigegeben wird? - Da gibt es eine ganz einfache Lösung für: programmier einfach sauber.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.12.2005, 13:16 Uhr
Sponge



Naja manchmal geht das ned.. bzw. es ist sauberer wenn man den Heap freigibt. Die sauberste Art meiner Meinung nach ist sich für verschiedene Arten von Daten verschiede Heaps zu schaffen, also einen für Zwischenergebnisse u.ä.
So und ich muss in einem Fall den Heap freigeben, weil ich durch Fehlerhandling in Zustände geraten kann, die es mir nur schwer erlauben den Speicher einzeln zu freen.
Ich meine nicht, dass ich den Speicher sauberer als das Betriebssystem hinterlassen kann, aber nach meinem derzeitigen Wissenstand säubert das Betriebssystem keine Speicherbereiche eines DLL-Aufrufs, da dieser den gleichen Speicherbereich nutzt wie das aufrufende Programm. Ich programmiere allerdings eine DLL.
--
Es gibt 10 Arten von Leuten:
die, die das binäre System verstanden haben,
und die, die es nicht verstanden haben ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.12.2005, 14:20 Uhr
ao

(Operator)



Zitat von Sponge:
... weil ich durch Fehlerhandling in Zustände geraten kann, die es mir nur schwer erlauben den Speicher einzeln zu freen

Klingt so, als hättest du einen Entwurfsfehler gemacht, und das Drumherumprogrammieren fängt langsam an, wehzutun. Einen eigenen Heap verwenden, nur um die Speicherlecks wegräumen zu können, das ist schon krass. Ich schätze, es wird höchste Zeit für ein Design-Review.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.12.2005, 14:28 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Erinnert mich ein bisschen an den Thread mit dem Stack Overflow abfangen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.12.2005, 14:39 Uhr
Sponge



lol ja das hat schon was mit dem StackOverflow zu tun ... genau in solch einem Fall ist es am einfachsten den gesamten Heap freizugeben

Es gibt manchmal einfach nicht die schöne variante, das Design ist schon gut so.. das Problem ist, dass man die Eingabeparameter ned kennt und somit auch den Programmablauf nicht voraussehen kann, ob z.B. an einer Stelle evtl. ein logischer Fehler auftritt. Um in diesem Fall einen geordneten Abgang zu machen, bietet sich die Variante an.
Bitte keine Belehrungen, wie man den Speicher geordnet freigeben kann / soll, ich bin mir da durchaus bewusst, mach das auch ned erst seit gestern.

P.S.: mein Speicher ist sauber (also keine Work-arounds o.ä.), es geht hier lediglich um eine inhaltliche Trennung von Speicherinhalten und einem Abfangmechanismus für Fehlerbehandlung und einen sauberen Speicher in Falle eines solchen.
--
Es gibt 10 Arten von Leuten:
die, die das binäre System verstanden haben,
und die, die es nicht verstanden haben ^^

Dieser Post wurde am 07.12.2005 um 14:45 Uhr von Sponge editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.12.2005, 14:44 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von Sponge:
lol ja das hat schon was mit dem StackOverflow zu tun ... genau in solch einem Fall ist es am einfachsten den gesamten Heap freizugeben

Sind das nicht Birnen und Äpfel - Stack und Heap?


Zitat von Sponge:
Es gibt manchmal einfach nicht die schöne variante, das Design ist schon gut so.. das Problem ist, dass man die Eingabeparameter ned kennt und somit auch den Programmablauf nicht voraussehen kann, ob z.B. an einer Stelle evtl. ein logischer Fehler auftritt. Um in diesem Fall einen geordneten Abgang zu machen, bietet sich die Variante an.
Bitte keine Belehrungen, wie man den Speicher geordnet freigeben kann / soll, ich bin mir da durchaus bewusst, mach das auch ned erst seit gestern.


Ich fühle mich nicht berufen, jemanden zu seinem Glück zu zwingen.
Also: Unter Linux kenne ich sowas nicht. Mein spontaner einfall wäre auch eher, einfach eine Liste mit den fraglichen Speicherblöcken selbst zu verwalten. Das ganze schön in einen C++ Allocator verpackt erlaubt es einem sogar, C++ Container damit zu betreiben.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.12.2005, 14:48 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von Sponge:
Es gibt manchmal einfach nicht die schöne variante, das Design ist schon gut so.. das Problem ist, dass man die Eingabeparameter ned kennt und somit auch den Programmablauf nicht voraussehen kann, ob z.B. an einer Stelle evtl. ein logischer Fehler auftritt. Um in diesem Fall einen geordneten Abgang zu machen, bietet sich die Variante an.


Wenn ich das so lese kann ich mir ganz ehrlich nicht vorstellen das das Design gut ist.
Du sagst das du die Eingaben nicht vorhersehen kannst und es deshalb zu Fehlern im Programm kommt.
Wieso kontrollierst du die Eingabe nicht bevor du sie weiter verarbeitest?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
07.12.2005, 17:08 Uhr
ao

(Operator)



Zitat von Sponge:
Es gibt manchmal einfach nicht die schöne variante, das Design ist schon gut so..... Bitte keine Belehrungen

OK. Wenn das so ist, glaube ich, dass dir nicht zu helfen ist.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.12.2005, 19:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Also: Unter Linux kenne ich sowas nicht.


Ich bin ja erstaunt das aus dieser ANTI-Windows.Steilvorlage nur so eine kleine Antwort geworden ist. Ich hätte im Umgekehrten Fall auf jeden Fall sofort geschossen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: