首页 > 解决方案 > “int”中的“Bool *”从整数中生成指针而不进行强制转换?

问题描述

我在编译以下代码时不断收到此警告,说“从'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);
}

标签: cpointersbooleanwarningshashtable

解决方案


推荐阅读