首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPPCheck空指针取消引用

CPPCheck空指针取消引用
EN

Stack Overflow用户
提问于 2021-12-09 08:12:48
回答 1查看 198关注 0票数 0

我维护一些嵌入式C代码(No )。我已经对我的更改做了一些更新,运行了CPPCheck。

CPPCheck引发了错误'Null指针取消引用:(易失性无符号int*)0‘。这并不在我的代码更改中,但我很想了解正在发生的事情。据我所知,取消引用空指针的行为是未定义的。

“”“

代码语言:javascript
复制
typedef void (*pfFunc_T)( void );

/* restart bootloader */
pfFunc_T  pfFunc;

__interrupt_disable();

pfFunc  = (pfFunc_T)( ( *(volatile U32*)0 ) );   /*CPPCheck error*/

if ( pfFunc != NULL )           /* no program loaded */
{
    pfFunc();
}

“”“

它是内存映射的,引导加载程序是第一个。它可能是从不同的应用程序调用引导加载程序吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-09 09:54:41

我猜您正在尝试将一个函数指针分配到内存地址为零的内容。这将不适用于符合规范的编译器--C语言不允许访问绝对地址为零,因为该地址是为空指针的特殊情况保留的。

要解决这个问题,您需要将某种形式的标识符链接到地址为零,然后在源中使用该标识符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70286545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档