Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Mathias
Beiträge: 7375
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von Mathias »

Wieso knallt dies bei FreeMem nicht, es müsste eigentlich schon beim ersten FreeMem knallen, tut es aber nicht.
Wieso ist das so ?

Code: Alles auswählen

program project1;

const
  libc = 'c';

  procedure free(p: pointer); cdecl; external libc;
  function malloc(size: SizeUInt): pointer; cdecl; external libc;

var
  p: Pointer;

begin
  p := malloc(1024);

  Freemem(p);
  Freemem(p);
  Freemem(p);
end.          
Mit Lazarus sehe ich grün
Mit Java, Python und C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1872
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von fliegermichl »

Also hier knallt es. Allerdings erst beim Programmende.

Code: Alles auswählen

program Project1;
var p : Pointer;
begin
 p := GetMem(1024);
 FreeMem(p, 1024);
 FreeMem(p, 1024);
 writeln('Enter');
 ReadLn;
end.

Benutzeravatar
theo
Beiträge: 11423
Registriert: Mo 11. Sep 2006, 19:01

Re: Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von theo »

@Mathias hast du "uses cmem" im lpr?

Mathias
Beiträge: 7375
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von Mathias »

theo hat geschrieben: So 8. Nov 2026, 11:45 @Mathias hast du "uses cmem" im lpr?
Nein, ich habe es extra nackt gelassen.
Stimmt das, das die unit cmem, GetMem und FreeMem auf die c Funktionen umbiegt ?
Mit Lazarus sehe ich grün
Mit Java, Python und C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 11423
Registriert: Mo 11. Sep 2006, 19:01

Re: Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von theo »

Mathias hat geschrieben: So 8. Nov 2026, 14:11
theo hat geschrieben: So 8. Nov 2026, 11:45 @Mathias hast du "uses cmem" im lpr?
Nein, ich habe es extra nackt gelassen.
Stimmt das, das die unit cmem, GetMem und FreeMem auf die c Funktionen umbiegt ?
Ich denke ja. Schau doch nach in unit cmem.

Benutzeravatar
Zvoni
Beiträge: 784
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 11 Pro (Laz4.3/FPC3.2.3)
CPU-Target: 64Bit
Wohnort: BW

Re: Wieso knallt dies nicht / C und FPC / malloc und free Gemisch

Beitrag von Zvoni »

Mathias hat geschrieben: So 8. Nov 2026, 14:11 Stimmt das, das die unit cmem, GetMem und FreeMem auf die c Funktionen umbiegt ?
Hatten wir das nicht erst vor ein paar Wochen?
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Antworten