Forum: Win32/Win64 API (native code)
Delphi
by mumu,
16. Feb 2006
ja es ist schon klar, natürlich wird davor mit GetMem Speicher angefordert.
Vielen vielen Dank Tommie-lie genau auf so eine klipp und klare antwort habe ich gehofft :-) :thumb: :thumb: :thumb:
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
16. Feb 2006
hä? woher will der wissen, welche bereiche freigegeben werden müssen, wenn er ja nur nil übergeben bekommt?
wenn ich aber jetzt alles von
p_char: PChar;
begin
...
p_char := nil;
FreeMem(p_char);
end;
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
16. Feb 2006
aber trotzdem nochmal die frage, damit ich mir auch 100 prozentig sicher bin:
folgendes in der reihenfolge kann eigentlich nie sinn machen, oder?
p_char := nil;
FreeMem(p_char);
weil ich schnall irgendwie net, warum mein vorgänger, dass bei jedem p_char gemacht hat?! Ich würd auf sowas eigentlich schon gar nicht kommen?!
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
16. Feb 2006
vielen vielen dank für die ausführliche antwort !!!! :thumb:
aber eine frage hätte ich noch:
p_char: PChar;
begin
...
p_char := nil;
FreeMem(p_char);
end;
macht sowas sinn? wenn ich doch den p_char auf nil setz, dann kann ich doch den speichernbereich mit FreeMem nicht mehr freigeben, weil ich ja net weiß, wohin der p_char zeigt, oder?
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
15. Feb 2006
jo genau, oki dann hat sich das erledigt. muss ich also nicht freigeben. das ich die strukturen freigeb, ist mir klar.
vielen dank
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
15. Feb 2006
jo das ist mir auch irgendwie klar. deshalb hab ich mich auch so gewundert... was der programmierer da macht.
ist FreeMem bei lokalen PCHars eigentlich nötig, oder macht delphi das nach ende der procedure selbst?
Forum: Win32/Win64 API (native code)
Delphi
by mumu,
15. Feb 2006
muss man einen pchar eigentlich freigeben? und wenn ja, wie?
ich hab hier ein programm, bei dem der Programmierer jeden lokalen pchar am Ende der procedure auf nil gesetzt hat:
temp: PChar;
begin
...
temp:= nil
end;