在我的函数中,我为一个叫做messagePacket的结构体分配内存并填入数据。
struct messagePacket *packet = malloc(sizeof(struct messagePacket));
//fill
当我尝试将指针强制转换为(uint8_t *)时,gcc会抛出一个警告,内容为:大整数被隐式截断为无符号类型。
sendBuf(..., (uint8_t *)packet);
我已经成功地完成了以下操作,并且我知道我可以使用这种方法作为解决方法。我在这里是因为我宁愿从中学习而不是绕过它。
uint8_t *buf = malloc(sizeof(struct messagePacket));
结构体messagePacket大小为1209 B。我的最佳猜测是,该内存块非常大,因此它被存储在高内存地址中,比如16字节地址?但这与我可以malloc出相同大小的uint8_t *的事实不符。
sendBuf
是做什么用的? - cnicutar