打印空指针的位

kub*_*j21 2 c bits void-pointers

如果我创建一个空指针,并将一段内存分配给该空指针,我如何打印出我刚刚分配的各个位?

例如:

void * p;
p = malloc(24);
printf("0x%x\n", (int *)p);
Run Code Online (Sandbox Code Playgroud)

我想上面打印我刚刚分配的 24 位。

oua*_*uah 5

size_t size = 24;
void *p = malloc(size);

for (int i = 0; i < size; i++) {
  printf("%02x", ((unsigned char *) p) [i]);
}
Run Code Online (Sandbox Code Playgroud)

当然,它会调用未定义的行为(分配的对象的值malloc具有不确定的值)。

  • @s.bandara 为什么是隐含的?OP似乎甚至不知道它。 (2认同)