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: 1868
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: 11420
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: 11420
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.

Antworten