可能重复:
char 指针与 C++ 中的 cout 混淆
给定您想要转储字节的任何结构,一种方法是在 C++ 中实现它,如下所示:
void print_bytes(myst *my_struct)
{
char *ptr = (char *)my_struct;
cout << std::hex;
for (size_t i = 0; i < sizeof(*my_struct); i++) {
cout << ptr + i << ": " << ptr[i];
// similar to printf("%p: 0x%x", ptr + i, ptr[i]) right?
}
}
但上面打印的地址和值都是垃圾。为什么?