Memcpy - z int do uint8_t[]

0

Czy za pomocą funkcji memcpy można dokonać kopiowania:

int -> uint8_t[]
...
typ_wbudowany -> uint8_t[]
char* -> uint8_t[] ???

Funkcja to kopiuje pamięć, więc chyba dałoby radę?

0

można.
Czy ty przypadkiem nie potrzebujesz po prostu unii?

union IntBytes {
    int asInt;
    uint8_t asUint8[sizeof(int)];
};
0

Mam funkcję, która ma działać na pewnej platformie sprzętowej. Funkcja przyjmuje np. jeden argument int, ma go zamienić na tablicę uint, a potem wysłać. Wiadomość wysyłana to struktura składająca się z pól:

uint8_t data[MAX_LENGTH];
uint8_t len;

W drugim programie ma się odbyć odebranie tej struktury i z powrotem zamiana jej pola DATA na int.

0

Drugie pytanie:
Czy da się przy użyciu tej funkcji wstawiać bajty w różne miejsca tablicy?
Przykład:

 
uint8_t tab[8];
int a = 0;
int b = 1;
memcpy(&tab,&a,sizeof(a));  //czy &tab pokazuje na 1 element tablicy??
memcpy(tab[4],&b,sizeof(b));  //jak pokazać na 4 element??
0

memcpy(&tab[4],&b,sizeof(b));

1 użytkowników online, w tym zalogowanych: 0, gości: 1