c - 赋值从指针生成整数而不进行强制转换 [-Werror]

标签 c int

// set all values in the hash table to null
for(int i = 0; i < HASH_SIZE; i++)
{
    hashtable[i] = NULL;
}

我不断收到此错误消息以响应 hashtable[i]:

assignment makes integer from pointer without a cast [-Werror]

为什么?

最佳答案

如果 hashtable 是一个整数数组,则 hashtable[i] 需要一个整数,而 NULL 是一个指针。

所以你试图将一个指针值赋给一个整数变量(没有转换),这通常只是一个警告,但是因为你有 -Werror 所有警告都会变成错误。

只需使用 0 而不是 NULL

关于c - 赋值从指针生成整数而不进行强制转换 [-Werror],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697784/

相关文章:

c - 解释 SNMP GET REQUEST 消息的 OID 部分的十六进制

c - 代理中的非阻塞套接字和 poll() 怪癖

在Linux中创建char设备并打开错误

c - 读取发生变化但行结构已知的文件行

C++ vector 大小类型

java - 如何判断队列大小是否大于最大整数?

c - AARCH64 gcc#include <stdint.h> 失败

c - fscanf 只扫描我文件的第一个值

java - 如何在不同的代码行中使用 int 并增加其值

c++ - boost::detail::atomic_count 线程安全吗?