我收到这个警告是因为我的逻辑-
逻辑:
uint8_t *m_data;
uint32_t* datap = (uint32_t*)m_data;警告:
Info 826: Suspicious pointer-to-pointer conversion (area too small)因为在赋值期间需要对值进行类型转换,所以我没有感觉到给定的代码行..how中有什么错误。我可以取消这个警告,或者从构建中删除它。
发布于 2014-02-04 20:13:53
这不是一个正确的转换,您试图将指向一个字节的指针解释为指向4个字节的指针,这可能会导致意外的结果。如果uint32_t具有与uint8_t不同的对齐要求,您甚至可能获得不同的指针值,以及指针所指向的值。如果您想转换值,只需执行以下操作:
uint32_t datap;
datap = static_cast<uint32_t>(*m_data);https://stackoverflow.com/questions/21552209
复制相似问题