我正在研究一些模拟软件,其中我有两个相互通信的程序。一个用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
语句在控制台中给出的输出只是一个不可读的字符(顶部带有箭头的小圆圈)。任何人都可以向我解释如何在控制台输出中显示此变量/内存地址的值吗?