MFC中CString的问题
typedefystructABC{CStringstr;structABC*next;}ABC;CStrings;ABC*p=newABC;s="asfddf";if(...
typedefy struct ABC
{
CString str;
struct ABC *next;
} ABC;
CString s;
ABC *p=new ABC;
s="asfddf";
if(p->str==s)//Unhandled exception.....
{
}
这是为什么,怎么解决
我建立了一个链表,头指针在外部声明
CGoods *head;
输入数据后,我在单独的一个函数中声明p=head;然后进行上述if操作出错 展开
{
CString str;
struct ABC *next;
} ABC;
CString s;
ABC *p=new ABC;
s="asfddf";
if(p->str==s)//Unhandled exception.....
{
}
这是为什么,怎么解决
我建立了一个链表,头指针在外部声明
CGoods *head;
输入数据后,我在单独的一个函数中声明p=head;然后进行上述if操作出错 展开
3个回答
展开全部
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);
}
没有错啊。。。
{
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会涉及动态内存),以减少不确定因素。
另外,在类或自定义数据类型中尽量少用CString类型(用字符数组代替,CString会涉及动态内存),以减少不确定因素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
p指向的结构体对象是空的,所以会出现错误。可以改成*p=&ABC.不知道大家看看我说的对不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询