在下面的代码中,指针值和指针地址按预期不同.
但数组值和地址不行!
怎么会这样?
产量
my_array = 0022FF00
&my_array = 0022FF00
pointer_to_array = 0022FF00
&pointer_to_array = 0022FEFC
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
int main()
{
char my_array[100] = "some cool string";
printf("my_array = %p\n", my_array);
printf("&my_array = %p\n", &my_array);
char *pointer_to_array = my_array;
printf("pointer_to_array = %p\n", pointer_to_array);
printf("&pointer_to_array = %p\n", &pointer_to_array);
printf("Press ENTER to continue...\n");
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我使用网络和串行通信软件工作很多,因此我经常需要使用代码来显示或记录数据包的十六进制转储.
每次我这样做,我都会从头开始编写另一个hex-dump例程.我将要再次这样做,但我想在这里问:那里有什么好的C++自由十六进制转储代码吗?
我想要的功能:
编辑: 澄清:我正在寻找可以轻松插入我自己的程序的代码,以写入stderr,stdout,日志文件或其他此类输出流.我不是在寻找命令行十六进制转储实用程序.