如何打印已转换为“unsigned char *”类型的内存地址的值?

时间:2015-02-12 10:30:42

标签: c++ pointers memory-address

我正在研究一些模拟软件,其中我有两个相互通信的程序。一个用c ++编写,另一个用Ada编写。

我目前正在研究c ++程序的一部分,其中一条消息被发送到堆栈,Ada程序将在该堆栈中读取消息。此消息包含指向内存中某个类型为dataPipeBMessage的变量的位置的指针...但是,该内存位置的数据正在转换为要发送的unsigned char *

因为dataPipeBMessage变量包含一个结构,其中一个元素是union,我想看看消息中发送了union的哪些元素,所以我有在消息发送的下方添加了printf语句,尝试在控制台中显示消息的内容......

但是,我不确定如何打印已转换为unsigned char *的指针变量的值...我的代码如下:

TheStackInterface->writeToStackNonBlocking(
        ... ,
        (unsigned char*)&dataPipeBMessage,
        ...);
    printf("\n Value of message being sent: %s", &dataPipeBMessage);

当我运行程序时,此printf语句在控制台中给出的输出只是一个不可读的字符(顶部带有箭头的小圆圈)。任何人都可以向我解释如何在控制台输出中显示此变量/内存地址的值吗?

0 个答案:

没有答案