memorydump()输出内存单元地址的数据

来源:互联网 发布:电梯运行优化sas 编辑:程序博客网 时间:2024/05/15 00:16

给出一个内存单元的首地址address,   按照如下的格式输出内存单元的内容

00000001H:  00000001 00000002 00000003 00000004

00000010H:  00000001 00000002 00000003 00000004



代码如下:     

address: 是给出的首地址

length: 是输出的地址单元的个数

void memoryDump(char * address ,int length){     int i=0;     for(i=0;i<length;i++)     {           if(i%16==0)         {             printf("%p:",(address+i));         }                  printf("%.2x",(unsigned char)*(address+i));         if(i%4==3)           printf(" ");           if(i%16==15)               printf("\n");      } }
主函数:

int main(){    int a=0x12345678;    int b=0x80125678;    int c=0x44556254;    int d=0x00112345;    int e=0x12345678;    int r=0x80125678;    int g=0x44556254;    int h=0x00112345;    int * address=&h;    char *p=(char*)address;            memoryDump(p,32);        getchar();         return 1;    }
输出结果: