关于CArray的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:15:34
我在CMainFrame中定义一个
typedef struct Orbitele
{
int a;
int b;
}OBTS;
然后CArray<OBTS,OBTS> KFJ;
我在另一个类当中
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
for (int i=0;i<pFrame->KFJ.GetSize();i++)
pFrame->KFJ[i].a=XX;
可以编译通过,但是最后一句总是报错~~请问为什么?
是VC++的问题,忘记了~~嘿嘿

pFrame->KFJ[i].a=XX; 是这句报错~~

还有pFrame得到的指针是绝对有效的~~

“最后一句总是报错”是指运行结果错?如果是,则
1。添加pFrame的非空检查;
2。仔细检查XX的内容(估计是动态计算的)

你CMainFrame创建了没有,如果 CMainFrame正在创建或你写写这些代码的类创建在CMainFrame之前,AfxGetMainWnd()返回的是个空指针,是不可访问的。

还有象遇到这种情况最好先测试下指针是否有效,如楼上说的。

那错是什么,帖出来看下才好下结论。

CArray<OBTS,OBTS> KFJ;
//这个定义好像有问题,你翻翻msdn?