gpt4 book ai didi

c++ - 错误 : expression must be a pointer to a complete object type (?)

转载 作者:搜寻专家 更新时间:2023-10-31 01:55:41 30 4
gpt4 key购买 nike

这是我需要修改的C中的函数。我试图让从“box”开始的 PREVIOUS 4 字节地址与 rt_tsk_self() 返回的 U32 值进行比较,但它只是给我一个错误,即“expression must be a pointer to a完整的对象类型”。

/*--------------------------- rt_free_box -----------------------------------*/

int rt_free_box (void *box_mem, void *box) {
/* Free a memory block, returns 0 if OK, 1 if box does not belong to box_mem */
if !(defined(__TARGET_ARCH_7_M) || defined(__TARGET_ARCH_7E_M))
int irq_dis;
endif

if (box < box_mem || box > ((P_BM) box_mem)->end) {
return (1);
}

//MODIFIED***********
if (*(box-4) != rt_tsk_self()) { //<--- error: #852: expression must be a pointer to a complete object type
return (1);
}
//***************

/*
other unrelated code
*/
return (0);
}

最佳答案

您正在尝试取消引用 void *。那行不通的。试试这个:

if (*(((uint32_t *)box)-1) != rt_tsk_self()) {

关于c++ - 错误 : expression must be a pointer to a complete object type (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199369/

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