Speicheradresse einem Array zuweisen?
-
Hallo,
ich habe das Problem, dass ich den hexadezimalen Inhalt einer Datei über die Netzwerkschnittstelle einlesen und an einem bestimmten Ort im RAM speichern muss.
Datei(Hex-format) ==> TCP/IP übertragung ==> speichern in RAM
ich bin so weit dass ich die Datei mit einem tcp-stream einlesen kann, nun möchte ich die Daten ab einer bestimmten adresse im RAM ablegen.
Kann mir jemand einen Beispiel dazu zeigen, bzw. kann ich einem Array eine bestimmte Adresse zuweisen?grüße
-
Damit kratzt du zwar am Rande des ANSI-Standards, aber versuch mal sowas:
char* target = reinterpret_cast<char*>(0x12345678);//hier gibst du die gewünschte RAM-Adresse an stream.write(target,filesize);Und jetzt mußt du nur noch darauf hoffen, daß das OS den Schreibversuch nicht mit einer Access Violation quittiert.
-
Soweit ich weiss obliegt die Verwaltung des RAM deinem Betriebssystem. Ich bezweifle, dass du es dazu bringen kannst, dir einen von dir ausgesuchten Bereich im Speicher zu reservieren, was die Vorraussetzung waere, um dort etwas zu speichern. Mal ganz abgesehen davon, dass es dafuer keinen vernuenftigen Grund geben kann.
Besser waere es, dir Speicher reservieren zu lassen und der Funktion, die deine Daten weiterverarbeiten soll, die Adresse zu uebergeben, wo die Daten im Speicher liegen.Pseudocode:
int groesse = sizeof(Datenpaket); Speicheradresse = new byte[groesse]; stream.write(Speicheradresse, groesse); Datenverarbeitung.verarbeite(Speicheradresse, groesse);