jeffasdasd
技术的乐趣在于分享,欢迎多多交流,多多沟通。
全部博文(877)
iOS UI (12)
IOS 综合(105)
Swift(0)
IOS网络(7)
iOS多线程(21)
iOS UI (29)
Object-C(38)
优秀的博客地址(8)
2021年(2)
2016年(20)
2015年(471)
2014年(358)
2013年(26)
Jeanson6
Neil_Won
goodtes
ludd_yu
fengzhan
xiaowuma
xiaohuan
linux_cr
wqfhenan
liuhui11
wdw1600
smxx
york_102
Wuge123
onesimos
啊啊啊啊
lescpsn
dreamboa
分类: LINUX
2014-04-27 00:39:22
建个函数,如:memory(void *address,int datasize,int row), 输入相应的address、datasize、row即可输出如下表 的样式。memory(0x4132A0,256,16)的结果。 0x4132A0是输入的内存地址,右面16位是row为16的各内存存储的数据,16进制的。 datasize是16行*16列的数据范围。
供参考,没试过如何从任意地址开始打印: #include ; void memory(void *address,int datasize,int row) { unsigned char *pAddr = (unsigned char*)address; while (datasize) { int nCurSize = min(datasize, row); printf("0x%08X ", pAddr ); // 输出16进制数据 for (int i = 0; i < nCurSize; i++) { printf("%02x ", pAddr[i]); } // 补空白让ascii对齐 for (int i = 0; i < (row - nCurSize); i++) { printf(" "); } // 输出ascii for (int i = 0; i < nCurSize; i++) { if ((pAddr[i] < ' ') || (pAddr[i] > 'z')) { printf("."); } else { printf("%c", (char)pAddr[i]); } } printf("\n"); // 打印下一列 datasize -= nCurSize; pAddr += nCurSize; } } void main() { void* address; int datasize; int row; printf("输入数据大小和行的大小:"); scanf("%d %d", &datasize, &row); address = (void*)malloc(datasize); memory(address, datasize, row); free(address); }
谢谢! 不过我要的是C不是C++
上一篇:通过绝对内存地址进行参数赋值与函数调用
下一篇:bash之printf
登录 注册