gpt4 book ai didi

C 库警告(指针转换)

转载 作者:行者123 更新时间:2023-11-30 21:09:47 24 4
gpt4 key购买 nike

我正在编写一个 C 库,经常收到警告“警告:返回从指针生成整数而不进行强制转换[默认启用]”或类似的警告。例如:

int chal(chal_l* list, int pos)
{

return list->data[pos]; \\warning occur here

}

这是关于数组列表的。 “pos”是索引。数据在 arraylist 结构中作为“void ** data”。我不太确定如何修复这些与此类似的警告,并且我在代码中出现了 4-5 次。

最佳答案

Data is in the arraylist struct as "void ** data".

这意味着 list->data[pos] 的类型是 void *,而不是 int,因此出现警告。

如果您尝试返回 list->data[pos] 的值,则函数的返回类型需要为 void *,而不是 int

如果您尝试返回 list->data[pos] 指向的整数对象的值,那么您需要执行如下操作:

return *( (int *) list->data[pos] );

也就是说,将 list->data[pos] 从指向 void 的指针转换为指向 int 的指针,并取消引用结果。

如果list->data[pos]指向不是整数的东西,那么我不确定你想要什么做。

关于C 库警告(指针转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546493/

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