typedef struct ABCD
{
CString str;
struct ABCD *next;
} ABCD;
void CRecktrackerView::OnDraw(CDC* pDC)//MFC的ondraw里测试的
{
CString s;
ABCD *p=new ABCD;
s=_T("asfddf");//这个地方是因为用了unicode字符集
if(p->str==s)//Unhandled exception.....
{
pDC->TextOut(100, 100, s);
}
没有错啊。。。
head指针未指向实际内存,为野指针。应该是在p=new ABC;后head = p。
另外,在类或自定义数据类型中尽量少用CString类型(用字符数组代替,CString会涉及动态内存),以减少不确定因素。
p指向的结构体对象是空的,所以会出现错误。可以改成*p=&ABC.不知道大家看看我说的对不对。