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ę?
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ę?
można.
Czy ty przypadkiem nie potrzebujesz po prostu unii?
union IntBytes {
int asInt;
uint8_t asUint8[sizeof(int)];
};
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.
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??
memcpy(&tab[4],&b,sizeof(b));