This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:指针分配警告和未分配地址

Guru**** 2387830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1172950/msp430fr2355-pointer-assignment-warnings-and-address-not-assigning

器件型号:MSP430FR2355

指针。。 啊!!!!

h 文件中包含以下内容:

char *pMetaData[] = {"DC_", "ST_", "SP_", "SW_"};

typedef struct
{
    char *pMeta;
    uint16_t *pData;
}toPC;

在 main 中、我具有以下内容:

#pragma PERSISTENT(dc_offset)
#pragma location = 0x1800
uint16_t dc_offset = DC_OFFSET_DAC;

toPC *uartTx;

int main(void)
{
    uartTx->pData = &dc_offset;
    uartTx->pMeta = &pMetaData;

两个问题:

#515-D a value of type "char *(*)[4]" cannot be assigned to an entity of type "char *"

第一个是警告(我在这一端尝试了很多东西,似乎只有在我在主 uartTx->pMeta = &pMetaData[0]中设置时才会删除警告)。。。。。。 为什么我认为这很简单、我需要一个指针来指向第一个 array....seems、如&pMetaData 应该起作用??????

第二期:

如果我摆脱了警告,并且我构建了代码并查看了表达式,您可以看到分配指向的空间与我想要的变量完全不同(见下面)...一个人应该在这里做什么??  似乎不管我用指针做了多少事,他们总是让我感到很受冲击…

e2e.ti.com/.../4530.Doc1.docx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    解决了…

     必须定义一个变量以及 PC 指针:

    toPC uartTx, *p_uartTx = &uartTx;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steve

    感谢您的问题、答案和分享

    祝你度过美好的一天!