gpt4 book ai didi

c - 警告 : Suspicious pointer-to-pointer conversion (area too small) with lint

转载 作者:行者123 更新时间:2023-11-30 18:54:19 32 4
gpt4 key购买 nike

long keyIntValue;
uint8_t *value;

*(long *)value = keyIntValue;

我在 linting 时遇到可疑的指针到指针转换(区域太小)。帮助我了解为什么会出现这种情况以及如何摆脱它?

最佳答案

您正在将“指向 uint8_t 的指针”(uint8_t *) 转换为 long *。对于 uint8_t 只有一个字节(假设 8 位)可用,对现在的 long * 的任何赋值都会溢出到以下字节(long 至少有 32 位) = 4 字节),不属于所指向的对象,从而创建未定义的行为(UB)。

请注意,如图所示,value 在分配时未定义,也显示 UB。

关于c - 警告 : Suspicious pointer-to-pointer conversion (area too small) with lint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530599/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com