pamięć tablicy w postaci wartości kolejnych bajtów

0

Mam tablicę z losowymi wartościami np: { 6841 , 1234} i chcę wyświetlić wartości kolejnych bajtów tej tablicy. Wiem jak wyświetlać adresy i wartości elementów tablicy z użyciem wskaźników ale nie wiem jak z tymi bajtami... mam wrażenie że robię błędy z typami danych ale to tylko moje przypuszczenia. Jeżeli ktoś mógł by mi wytłumaczyć jak można to zrobić
i na czym właściwie polega wyświetlanie pojedynczych bajtów będę wdzięczny. :)
Dodam że chodzi o język C (nie umiem jeszcze składni c++).

2

Zrzutuj wskaźnik do tej tablicy na wskaźnik od char. Wypisz.

1

Tak jak @Shalom napisał, ale najlepiej rzutuj na unsigned char (albo jeszcze lepiej: uint8_t).

int tab[] = {6841, 1234};
for(unsigned i = 0; i < sizeof(tab); ++i){
    uint8_t byte = *((uint8_t*)tab + i);
    printf("hex: 0x%02X\tdec: %3u\n", byte, byte);
}

http://melpon.org/wandbox/permlink/puzkS4tlbR2zlcep

0

Tak mi się wydaje czytelniej:

#include <stdio.h>
#include <stdint.h>

int main() {
	int table[] = {6841, 1234};
	uint8_t* bytes = (uint8_t*)table;
	for(size_t index = 0; index < sizeof(table); index++) {
	    printf("hex: 0x%02hhX\tdec: %3hhu\n", bytes[index], bytes[index]);
	}
	return 0;
}

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