我有一个结构:
typedef struct {
LogLevel level;
char message[255];
} LogMessage;
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数接收指向LogMessage结构的指针,并需要调用一个接收char*的函数:
xStatus = xQueueReceive(xQueueHandleGSMSend, &lReceivedData, portMAX_DELAY);
if(xStatus == pdPASS)
{
logSimpleMessage(&lReceivedData->message, 1);
}
Run Code Online (Sandbox Code Playgroud)
这是logSimpleMessage函数的原型:
void logSimpleMessage(const char * message, int level);
Run Code Online (Sandbox Code Playgroud)
当我尝试用上面的代码调用它时,我没有得到消息的正确地址(或内容).如何获取指向lReceivedData消息的char*?
编辑:我已经尝试使用lReceivedData->消息,如建议,但我仍然没有得到正确的地址或值.这是IDE的屏幕上限...我在调试器中做了一些非常错误的事情,因为它看起来好像应该有效.
代替
logSimpleMessage(&lReceivedData->message, 1);
Run Code Online (Sandbox Code Playgroud)
你这么说:
logSimpleMessage(lReceivedData->message, 1);
Run Code Online (Sandbox Code Playgroud)