打印内存, 打印16进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印内存, 打印16进制相关的知识,希望对你有一定的参考价值。

 

打印内存信息

 1 #include <stdio.h>
 2
 3 // 打印内存信息
 4 void showMemoryHex(void* ptr, int size) {
 5     unsigned char* bytes = (unsigned char*)ptr;
 6     for (int i = 0; i < size; i++) {
 7         printf(" %02x", bytes[i]);
 8     }
 9 }

 

 测试

struct MyStruct {
    int age;
    char name[12];
};

int main(int argc, char* argv[])
{
    MyStruct tony;
    {
        memset(&tony, 0, sizeof(MyStruct));

        tony.age = 123;
        strcpy(tony.name, "tony");
    }


    MyStruct* pTony = &tony;
    showMemoryHex((void*)pTony, sizeof(MyStruct));
    getchar();
    return 0;
}

 

以上是关于打印内存, 打印16进制的主要内容,如果未能解决你的问题,请参考以下文章

打印变量地址-0x%08x

不同变量在内存中的存在形式(以16进制表示)

Java,打印一个包含所有 16 位的二进制文件

如何 gdb 如何打印一个地址中的内容

如何打印带有前导零的二进制整数?

argparse 代码片段只打印部分日志