c++ - 为什么功能没有完全执行?

标签 c++ callback

当我尝试调试以下函数段时,执行在 pCellTower->m_pCellTowerInfo = pCellInfo 行停止(跳出函数):

RILCELLTOWERINFO* pCellInfo = (RILCELLTOWERINFO*)lpData;

CCellTower *pCellTower = (CCellTower*)cbData;
if(pCellTower != NULL)
{
    pCellTower->m_pCellTowerInfo = pCellInfo;
}

(未设置指针 pCellInfo)

然后我试着评论这行:

RILCELLTOWERINFO* pCellInfo = (RILCELLTOWERINFO*)lpData;

CCellTower *pCellTower = (CCellTower*)cbData;
if(pCellTower != NULL)
{
    //pCellTower->m_pCellTowerInfo = pCellInfo;
}

这样函数就可以正常执行了。

有谁知道哪里出了问题?

最佳答案

最可能的解释是 pCellTower 也未设置。它可能包含随机位,并最终指向分配给您的应用程序的内存之外。操作系统不允许您的程序在分配给它的空间之外写入,因此它会向程序发送写入被拒绝的某种消息(Windows:异常,Unix/Linux:信号)。

关于c++ - 为什么功能没有完全执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/442550/

相关文章:

c++ - 将创建的对象作为参数从该对象内部传递,C++

c++ - 什么时候调用 Qt 插槽?

macos - 未调用热键回调的事件 Tap(CFMachPortRef) 问题

javascript - 如果失败, Angular 回调 api 添加错误消息

javascript - 内联 JS 回调语法与内部 JS 回调语法

android - 从在后台线程上运行的任务启动动画

c++ - 我怎么会 'generate variadic parameters'?

c++ - 使用可变参数模板和重载 << 运算符编译错误

c++ - 使用 std::string 调用类方法

ios - 如何停止这个序列?