我有一个结构:

typedef struct {
    LogLevel level;
    char message[255];
} LogMessage;

然后我有一个函数,它接收一个指向logMessage结构的指针,需要调用一个接受char*的函数:
xStatus = xQueueReceive(xQueueHandleGSMSend, &lReceivedData, portMAX_DELAY);

if(xStatus == pdPASS)
{
    logSimpleMessage(&lReceivedData->message, 1);
}

以下是logSimpleMessage函数的原型:
void logSimpleMessage(const char * message, int level);

当我试图用上面的代码调用它时,我没有得到消息的正确地址(或内容)。如何获取指向lreceiveddata消息的字符*?
编辑:我已经尝试使用lreceiveddata->消息,如建议所示,但仍无法获得正确的地址或值。这是IDE的屏幕盖…我是否在调试器中做了一些非常错误的事情,因为它似乎应该工作。

最佳答案

而不是

logSimpleMessage(&lReceivedData->message, 1);

你这么说:
logSimpleMessage(lReceivedData->message, 1);

07-27 13:39