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

Kopiera 0x-sträng till en struct?


Micke_Johansson

Rekommendera Poster

Micke_Johansson

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

Länk till kommentar
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.

Länk till kommentar
Dela på andra webbplatser

Micke_Johansson

Ä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!?

Länk till kommentar
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

Länk till kommentar
Dela på andra webbplatser

Micke_Johansson

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!

Länk till kommentar
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.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...