C++ 为什么函数没有';你不能完全执行吗?

C++ 为什么函数没有';你不能完全执行吗?,c++,callback,C++,Callback,当我尝试调试以下函数段时,执行在pCellTower->m_pCellTowerInfo=pCellInfo行停止(跳出函数): RILCELLTOWERINFO* pCellInfo = (RILCELLTOWERINFO*)lpData; CCellTower *pCellTower = (CCellTower*)cbData; if(pCellTower != NULL) { pCellTower->m_pCellTowerInfo = pCellInfo; } (未设置

当我尝试调试以下函数段时,执行在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:exception,Unix/Linux:signal),表明写入被拒绝。

如果您追溯cbData值的来源,您可能会发现它是一个未初始化的随机值