可疑的指针转换转换(区域太小)

Suspicious pointer-to-pointer conversion (area too small)

本文关键字:转换 区域 指针      更新时间:2023-10-16

我正在为我的逻辑得到此警告 -

逻辑:

uint8_t     *m_data;
uint32_t* datap = (uint32_t*)m_data;

警告:

Info 826: Suspicious pointer-to-pointer conversion (area too small)

由于要求在分配过程中打字值。而且我不觉得给定代码行中有问题。.我如何抑制此警告或将其从构建中删除

这不是正确的演员,您正在尝试将指针解释为字节为4个字节的指针,并可能导致意外结果。如果uint32_t的对齐要求与uint8_t不同,则您甚至可能会获得指针的不同值,也可能会获得指向的指向。如果要转换值,只需做:

uint32_t datap;
datap = static_cast<uint32_t>(*m_data);