以下代码为啥在x64下运行异常呢

以下代码为啥在x64下运行错误呢
C/C++ code

    int**m_NumList = (int **)(pData);//经过地铁索引
    
    for(i = 0; i < nCount; i++)
    {
        int nPos = (int)(m_NumList[i]);    

        if(nPos != -1)
        {    //tmpInfo是另外一个定义好的数组        
            m_NumList[i] = (int*)((int*)tmpInfo + nPos);    
        }    
    }



这段代码在win32下运行正确,但是为啥在x64下运行通不过呢?该如何修改使得在x86,x64都能运行,求高人给点意见,谢谢!

------解决方案--------------------
m_NumList[i]是指针,不能转int。。
------解决方案--------------------
还是32位/64位转换的问题吧
------解决方案--------------------
可参考http://blog.csdn.net/harbinzju/article/details/5785024
正如文中所说Windows上的32位程序设计和64位程序设计最大的不同(也就是IP32和LLP64的不同),就在于指针的长度不同由32位变成了64位。