Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Speicher dynamisch erweitern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.07.2005, 10:15 Uhr
~panconnutella
Gast


Hola,

ich brauche in einem C++ Programm für die Speicherung von Daten ein normales uchar array. Das "Problem" ist, dass dieses Array keine fixe Größe hat und diese auch nicht vorhersehbar ist (hängt von einem eingelesenen File ab, das "beliebig viele" Daten enthalten kann). Momentan reserviere ich mit "new" ein fixes Array, das immer dem Maximum entspricht. Mit knapp 500k ist das bei den heutigen Speichergrößen zwar kein Problem, aber ich möchte da gerne etwas effizienter sein. Gibt es außer den "malloc-realloc" Befehlen noch andere Möglichkeiten, irgendwie mit "new" zusammen vielleicht? Vielen Dank im voraus.

MFG

M.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.07.2005, 10:21 Uhr
ao

(Operator)


Vor dem Lesen gucken, wie groß das File ist (mit fstat oder mit fseek und ftell). Dann den new-Aufruf mit der passenden Größe machen.

Etwas realloc-Entsprechendes gibts für new nicht.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.07.2005, 10:36 Uhr
~panconnutella
Gast


Das geht so leider nicht, da in dem File nicht reine Rohdaten stehen, sondern z.B. Kommando Token, Kommentare usw. Wird wohl nur mit realloc gehen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.07.2005, 00:44 Uhr
octopus



versuch's doch mal mit der STL. Da gibt's verschiedene Container, die bei hinzufügen von neuen Elementen den zusätzlichen Speicher automatisch allokieren. (z.B. vector)
Du kannst ja einen Daten-Typ definieren, der ein Array von Größe 1000 ist und immer wenn Du neuen Speicher brauchst, hängst Du ein neues Element von diesem Array-Typ an den Vector dran.
Du mußt Dir dann halt noch paar Funktionen schreiben, die das "automatisch" machen, und das auch entsprechend auslesen können.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: