相关疑难解决方法(0)

C空指针算术

我注意到Clang的这个警告:

warning: performing pointer arithmetic on a null pointer
has undefined behavior [-Wnull-pointer-arithmetic]
Run Code Online (Sandbox Code Playgroud)

详细信息,正是此代码触发此警告:

uint8_t *end = ((uint8_t*)0) + sizeof(uint8_t) * count;
Run Code Online (Sandbox Code Playgroud)

为什么在从不同于零的整数获得的非空指针上执行相同操作时禁止对空指针进行算术运算不会触发任何警告?

更重要的是,C标准是否明确禁止空指针算法

c standards pointers pointer-arithmetic language-lawyer

3
推荐指数
1
解决办法
347
查看次数