提问人:davdavdav2 提问时间:9/20/2021 最后编辑:davdavdav2 更新时间:9/20/2021 访问量:345
“int”中的“Bool *”使指针来自整数而不强制转换?
"Bool *" from "int" makes pointer from integer without cast?
问:
我在编译以下代码时不断收到此警告,说“从'int'赋值到'_Bool'使指针从整数中转换而没有强制转换”,我不知道这意味着什么。我该如何解决这个问题?它通过了我所有的测试。*result = true;
char *hash_table_lookup(hash_table_t *ht, int key, bool **result)
{
/// Find the previous entry for key
entry_t *tmp = find_previous_entry_for_key(&ht->buckets[key % No_Buckets], key);
entry_t *next = tmp->next;
if (next && next->value)
{
*result = true;
return (next->value);
}
else
{
*result = false;
}
}
它按以下方式进行测试
void test_lookup1()
{
hash_table_t *ht = hash_table_create();
char *valtest = "a";
int keytest = 12;
hash_table_insert(ht, keytest, valtest);
bool *result;
hash_table_lookup(ht, keytest, &result);
CU_ASSERT_TRUE(result);
hash_table_destroy(ht);
}
答: 暂无答案
评论
result
bool **result
*result
bool*
false
true
<stdbool.h>
result
result
是指向指针的指针。当您取消引用它时,您仍然会得到一个指向 的指针,您正在为该指针分配一个整数。为什么 hneed 要有类型?*result
bool
result
bool **
**
result
bool
bool* result