Re: Speicherreservierung mit malloc, calloc,... Kategorie: Progr. Assembler, TaskingTools, OS (von Dietmar Weickert - 25.02.2004 15:06) | ||
Als Antwort auf Speicherreservierung mit malloc, calloc,... von Dominik - 25.02.2004 11:28 | ||
| ||
Hallo Dominik! Warum allokierst du die Arrays dynamisch vom Heap? Ich könnte mir vorstellen, dass entweder der Heap einfach zu klein ist und du durch eine Prüfung des OS einen Laufzeitfehler erhältst, oder dass du womöglich gar Codebereiche überschreibst, sodass es zu undefinierten Befehls-Sequenzen kommt. Beides würde die Meldung erklären. Auch ein zu stark segmentierter Heap kann zu einem Fehlschlagen des Allokierens führen. Ungerade Adress Boundaries sind als Ursache eher auszuschlie�en. Prüfst du, ob du als Ergebnis einen NULL-Pointer erhältst? Der würde ein Fehlschlagen des Allokierens anzeigen, eine weitere Verwendung dieser Adresse löst ebenfalls einen Laufzeitfehler aus. An deiner Stelle würde ich die drei Felder einfach deklarieren: char a[1024], b[1024], c[1024]; Das gibt dem Compiler wenigstens die Chance, bereits während der Ubersetzung zu prüfen, ob genug Speicher verfügbart ist. Beste Grü�e, Dietmar. > Hallo! > Hat irgendjemand Erfahrungen mit der Verwendung von 'malloc' oder 'calloc' zur > Speicherreservierung bei der Programmierung der CC2-Unit unter C mit der Tasking-EDE? > > Ich mu� drei Character-Arrays mit je 1024 Elementen speichern und möchte möglichst elegant > den Speicherplatz dafür anfordern. Das Problem ist, da� bei Aufruf einer der oben genannten > Funktionen sofort der Fehler 'ILL OPA' auftritt. Gibt es eine Möglichkeit, zu verhindern, da� diese > Funktionen auf ungerade Speicheradressen zugreifen (da das ja wahrscheinlich der Grund für die > Fehlermeldung ist)? Hat das 'Memory Model' (in diesem Fall 'Large') Einflu� darauf? > > Oder gibt es noch eine bessere Möglichkeit um Speicher zu reservieren? Oder eventuell die Arrays > als globale Variablen mit '_at' an eine sichere Stelle (an welche) im Speicher zu schreiben? Gibt > es einen Speicherbereich der unter OSOPT_V2 komplett ungenutzt ist und trotzdem für Variablen > genutzt werden kann? > > Ich habe zwar einige Erfahrung mit C aber noch sehr wenig mit C auf CC2. > Wäre super, wenn mir jemand helfen könnte. Danke! | ||
Antwort schreiben Antworten: Re: Speicherreservierung mit malloc, calloc,... (von Dominik - 25.02.2004 16:40) Re: Speicherreservierung mit malloc, calloc,... (von Dietmar Weickert - 25.02.2004 16:53) Re: Speicherreservierung mit malloc, calloc,... (von Dominik - 26.02.2004 15:02) neuer Thread (von Dominik - 26.02.2004 20:58) |