Forum: PC-Programmierung undefined reference to __HEAP_END/ __HEAP


von Mark (Gast)


Lesenswert?

Hallo,
ich möchte einen speicher für einen Array reservieren.
1
long long *encrypted = malloc(sizeof(long long)*message_size);

diesen möchte ich dann als return wert von der Funktion zurück geben.

wenn ich das bauen möchte, bekomme ich in ../tricore/lob\libos.a in 
function sbrk die Fehler
undefined rerence to __HEAP_END
undefined rerence to __HEAP

Wo kann ich den HEAP einstellen?
habe versucht direkt über dem Aufruf zwei defines zu machen, was aber 
nichts gebracht hat.

Alternativ könnte ich den Array als übergabeparmaeter mit zur Funktion 
geben und dann beschreiben.

Wobei ich erstere Lösung lieber machen würde, damit ich das auch mal 
gemacht habe

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Mark schrieb:
> Wo kann ich den HEAP einstellen?

Wahrscheinlich im Linker-Script. Welcher Compiler, C-Library und 
Controller wird genutzt? Sicher, dass dynamische Speicherverwaltung 
sinnvoll ist - wird der Speicher auch mal anderweitig gebraucht, oder 
kannst du ihn auch als globale Variable definieren weil der Speicher 
sonst ungenutzt wäre?

Mark schrieb:
> habe versucht direkt über dem Aufruf zwei defines zu machen, was aber
> nichts gebracht hat.

Klar, die sieht nur der Compiler, aber malloc() bzw. das vermutlich 
vorhandene _sbrk() ist ja schon kompiliert.

Mark schrieb:
> Alternativ könnte ich den Array als übergabeparmaeter mit zur Funktion
> geben und dann beschreiben.

Welche Funktion denn? Klingt nicht prinzipiell verkehrt...

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.