+ -
当前位置:首页 → 问答吧 → 关于CStirngArray类的问题

关于CStirngArray类的问题

时间:2011-12-06

来源:互联网

CStringArray* sstring=new CStringArray;
if(1)
{
CStringArray ss;
ss.Add(_T("我是个大波浪"));
sstring=&ss;
}
MessageBox(sstring->GetAt(0)); 
}
能通过编译 但是只要一执行到Messagebox这里 就出现了  
文件操作.exe 中的 0x77d3a37a 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突
  的错误

求高手指点迷津

作者: gongyanever   发布时间: 2011-12-06

CStringArray ss;if(1)
{
ss.Add(_T("我是个大波浪"));
sstring=&ss;
}
MessageBox(sstring->GetAt(0));  
}

ss 是个局部变量,被释放了,要放到外面

作者: oyljerry   发布时间: 2011-12-06


追问;如果不想将SS放到外面 有什么方法吗

作者: gongyanever   发布时间: 2011-12-06

直接sstring->Add((_T("我是个大波浪"));

作者: xiaoguailong3   发布时间: 2011-12-06

引用 3 楼 xiaoguailong3 的回复:

直接sstring->Add((_T("我是个大波浪"));


++

作者: loseway   发布时间: 2011-12-06

引用 4 楼 loseway 的回复:
引用 3 楼 xiaoguailong3 的回复:

直接sstring->Add((_T("我是个大波浪"));


++

汗 我的本意是设计一个函数 放回一个CStringArray的对象
但是 无法直接放回对象,会出现编译错误。放回地址 就出现上述的错误。
求高人 大侠的帮助

作者: gongyanever   发布时间: 2011-12-06

函数的参数用引用嘛
viod TEST(CStringArray& arString)
{
  arString.add(_T("你是个大波浪"));
}


CStringArray sstring;
Test(sstring);
MessageBox(sstring->GetAt(0));  

作者: xiaoyuetian   发布时间: 2011-12-06