Kopieren eines langen Hexwertes auf Speicherbereich

OP #1396164
Hallo

hab ein kleines Problem und komm einfach auf keine gute Lösung.
Ich alloziere Speicher und will dort dann einen Block an Hexwerten 
hineinkopieren. Nur wie?
Meine erster Versuch sah so aus:
1
uint8_t  *data;
2
data = malloc(sizeof(uint8_t) * 8);
3
memcpy(data, (char*)0x00FFAABB, 8);
Wie schon fast erwartet kam dabei nichts gutes raus. Wie macht man das 
richtig und mit möglichst wenig Befehlszeilen? :)
OP #1396245
Hmm. Ich bräuchte aber einen uint8_t Pointer bzw. ein Speicherfeld mit 
lauter chars.

@Rufus
Mit welchem Befehl kann man dann direkt Daten kopieren ohne vorher für 
die Daten eine Variable angelegt zu haben? Das geht doch sicher mit 
memcpy irgendwie, oder?
#1396319
>Daten kopieren ohne vorher für die Daten eine Variable angelegt zu haben

Wenn du sie nicht vorher im Speicher abgelegt hast, kann man sie auch 
nicht kopieren. Entweder per Variable oder per Konstante auf die 
zugegriffen wird. Die Lösung des Problems kann sogar dank 
Havard-Architektur beliebig komplex werden (je nachdem, wo du deine 
Quelle gern stehen hättest)
Edit: Sofern du natürlich eine CPU mit Havard hast. bei Von-Neumann ist 
zumindest das einfacher...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.