QP实现之函数指针数组无法获取正确地址的问题
来源:互联网 发布:mac介质推出键 编辑:程序博客网 时间:2024/06/06 06:46
在QHsm_init()函数中有一个函数指针数组,用于保存从顶层QHsm_top进入目标状态的路径。声明如下:
QStateHandler path[QEP_MAX_NEST_DEPTH_];
在遍历完之后,需要从第一层开始依次执行ENTRY动作:
Q_SIG(me) = (QSignal)Q_ENTRY_SIG;
do { /* retrace the entry path in reverse (correct) order... */
(void)(*path[ip])(me); /* enter path[ip] */
} while ((--ip) >= (int8_t)0);
但是在执行到(void)(*path[ip])(me);的时候,每次都跳到0x0f之内的空间执行,导致程序出错,有时获得的地址甚至是0xFFFF,到了地址空间的最底部,PC加一后变为0x0,执行出现了问题。但是查看path数组内的数据也是正确的,除了没有赋值的成员为0xFFFF外,ip也是对的,分析了很多次都没有结果。
后来怀疑是没有初始化的问题,将path数组声明为static后,执行正常,此时数组成员都被初始化为0,能正确获取函数指针。
- QP实现之函数指针数组无法获取正确地址的问题
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- 电脑网卡无法正确获取DHCP地址
- 微信中遇到无法获取地址的问题
- 函数指针地址转换问题的解决
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数
- 无法正确获取屏幕尺寸【一个诡异的问题】
- 指针篇之十二 函数指针数组实现跳转表
- 获取重载函数地址的问题
- 求子数组之和的最大值——编程之美 2.14 扩展问题 正确实现
- 数组作为函数参数的指针问题
- 函数指针数组的简单实现
- 理解数组,结构 ,函数指针,指针函数,数组指针,指针数组,结构指针的定义和实现
- 关于二维数组地址和指针之间赋值的问题
- C语言二维数组的指针及首地址问题
- 数组首地址给赋给 指针的问题
- 清除Eclipse中的内置浏览器中的历史记录
- 09年8月27日活动主题:中移动Mobile Market及移动互联网交流
- [转]网站整合Ucenter详细流程
- 刷新父页面,并且关闭本页
- char[] 与char[9]的不同。 sizeof(char*) != sizeof(char)
- QP实现之函数指针数组无法获取正确地址的问题
- linux rhel5 dns 详解配置 2
- Hibernate延迟加载介绍
- 程序员进阶的建议:多看、多写、多交流
- 利用SessionPageStatePersister将ViewState信息存储到服务器
- 安装HP笔记本(cq41-204tx)心得
- 任意长度的字符串输入
- 发布一条收藏已久的秘方!
- SQL时间转换格式