#include <stdio.h>
#include <ctype.h>
void hexdump(void *ptr, int len) {
unsigned char *buf = (unsigned char*)ptr;
int i;
for (i = 0; i < len; i += 16) {
printf("%06x: ", i);
for (int j = 0; j < 16; j++) {
if (i + j < len) {
printf("%02x ", buf[i + j]);
}
else {
printf(" ");
}
printf(" ");
}
for (int j = 0; j < 16; j++) {
if (i + j < len) {
printf("%c", isprint(buf[i + j]) ? buf[i + j] : '.');
}
}
printf("\n");
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 1000};
hexdump(arr, 24);
}
/*
run:
000000: 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 ................
000010: 05 00 00 00 e8 03 00 00 ........
*/