Just nu i M3-nätverket
Gå till innehåll
Micke_Johansson

Kopiera 0x-sträng till en struct?

Rekommendera Poster

Hej sitter och vill kopiera en 0x 1234567890 Alltså en byte array in till en struct som består av 100 int8 bytes, hur gör man detta?

 

Såhär är min sits:

 

Får in en byte sträng till min metod den kan se ut som 0x12345678.... ända upp till 100 st bytes!

 

Skulle vilja kopiera in denna till en struct som består av 100 bytes / int8 ser ut som

 

typedef struct {

int8 ...

int8 ...

...

100st sådana

} temp_bytes;

 

Hur gör jag detta, måste jag kopiera byte för byte genom tilldelning eller finns det smartare sätt?

 

Mvh

Micke

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Är det där ett smart sätt att hantera dessa data?

 

Nu har du säkert tänkt över det hela och kommit fram till att en struct är bäst för dig men kan du inte istället, vid behov, plocka ut ett enskilt element ur din byte array?

 

Eller måste du ha in den i din struct? Då tror jag nog att det blir nödvändigt att det det term för term men kan för lite C++ för att säga definitivt.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Är det där ett smart sätt att hantera dessa data?

 

Nu har du säkert tänkt över det hela och kommit fram till att en struct är bäst för dig men kan du inte istället, vid behov, plocka ut ett enskilt element ur din byte array?

 

Eller måste du ha in den i din struct? Då tror jag nog att det blir nödvändigt att det det term för term men kan för lite C++ för att säga definitivt.

 

Hej,

 

ja jag skulle behöva ha in det i den struct jag redan har för att slippa en himla massa extra job utöver :)

 

Detta är vanliga C inte C++ glömde skriva det, men jag tror en memcpy bör räcka!?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Testa och se... men tyvärr, ingen kod från mig. Det känns dock inte så enkelt då jag tror att du inte kan mängdkopiera arrayen direkt in i varje term i din struct. Finns ju inget som säger att andra termen i din struct ligger granne i minnet med den första så att säga.

Men kanske det finns något knep?

 

Kanske värt att läsa

http://cboard.cprogramming.com/cplusplus-programming/48604-quick-fill-struct-s.html

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Testa och se... men tyvärr, ingen kod från mig. Det känns dock inte så enkelt då jag tror att du inte kan mängdkopiera arrayen direkt in i varje term i din struct. Finns ju inget som säger att andra termen i din struct ligger granne i minnet med den första så att säga.

Men kanske det finns något knep?

 

Kanske värt att läsa

http://cboard.cprogr...l-struct-s.html

 

 

Tackar har inte lyckats ännu, men klart som du säger inte säkert minnet är granne med minnet i andra termen...hmmm får fundera mer!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Du kan inte kopiera din array till en strukturarray och sedan kopiera in denna till din "riktiga" struct?

 

Nåt sånt här:

 

#include <stdio.h>

struct struktm {
int strm;
};

main() {

int arr[] = {1, 2, 3, 4, 5};

struct struktm m[5];

int i;
for (i = 0; i < 5; i++) {
m[i].strm = arr[i];		
printf ("%d\n", m[i].strm);
}

return 0;
}

 

Utskriften från det här blir:

1

2

3

4

5

 

Arrayen ligger alltså nu i strukturarrayen term för term.

Och nu är det väl "bara" att kopiera över till din struct, antingen med assignment (om det går) eller med memcopy.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...