[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
Hej,
Jeg har et system hvor standard malloc() og free() funktionerne ikke fungerer ordenligt. Hukommelsen bliver fint allokeret med malloc(), men free() frigiver ikke noget. Det vil altså sige, at hvis man dynamisk allokerer hukommelse, så vil man uundgåeligt ramme panden mod muren på et tidspunkt.
Jeg forestiller mig ikke det er specielt besværligt og lave nogen funktioner der allokerer en ordenlig bunke heap, og så deler hukommelse ud i mindre bunker alt efter behov, f.eks. en heap_alloc() og heap_free() funktion der virker ligesom malloc() og free().
Problemet kommer når jeg har lyst til at bruge funktionerne til at allokere plads til c++ objekter, altså som en slags erstatning for new og delete. Kan det overhovedet lade sig gøre?
Jeg forestiller mig at new og delete bruger malloc() og free() til at reservere hukommelse, men jeg har ikke andet og have det i end at sådan ser det ud. Systemet er et indlejret system bygget op på en Xilinx FPGA og med en Xilinx MicroBlaze CPU. Det defekte C library er et GNU C/C++ library Xilinx har porteret til at kunne køre på deres system.
Jeg undskylder, at det ikke har specielt meget med Linux at gøre, men jeg håber der er nogen der kan være mig behjælpelige. Evt. bare med et svar hen af "Det kan ikke lade sig gøre", for så kan jeg i det mindste komme til, at bruge min tid til noget andet.
Hilsen Anders
Med venlig hilsen Egon Andersen
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |