关于 new 类 delete

cuiran
博客专家认证
2009-10-22 10:28:31
int CTestCBase::userListFun()
{
CUser * user = new CUser();
user->setAge(12);
user->setId(100);
userList.push_back(user);
delete[] user;
int a=user->getAge();
return 0;
}

int main()
{
list<CUser *>::iterator plist;
for (plist = userList.begin();plist!=userList.end();++plist)
{
CUser *user=(*plist);
printf("user id = %d\n user age= %d\n",user->getId(),user->getAge());
}

}

userList 长度等于 = 1 但是 printf();打出不是 100 和12 问什么 ? 刚学 谢谢 哦
...全文
156 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuiran 2009-10-22
  • 打赏
  • 举报
回复
哦。明白了。谢谢。
www_adintr_com 2009-10-22
  • 打赏
  • 举报
回复
用完之后再销毁, main 结束之前加一段:

for (plist = userList.begin();plist!=userList.end();++plist)
{
delete *plist;
}
cuiran 2009-10-22
  • 打赏
  • 举报
回复
那么,最后不用销毁对象user 吗
太乙 2009-10-22
  • 打赏
  • 举报
回复
delete[] user; ---改为delete user
已经删除了!!!
www_adintr_com 2009-10-22
  • 打赏
  • 举报
回复
去掉 delete user
cuiran 2009-10-22
  • 打赏
  • 举报
回复
delete[] user 改成 delete user 也不行。
cuiran 2009-10-22
  • 打赏
  • 举报
回复
void main()
{
CTestCBase * testCBase = new CTestCBase();
testCBase->userListFun();
printf("userList = %d \n ",userList.size());
list<CUser *>::iterator plist;
for (plist = userList.begin();plist!=userList.end();++plist)
{
CUser *user=(&*plist);
printf("user id = %d\n user age= %d\n",user->getId(),user->getAge());
}
}
是这样的
cuiran 2009-10-22
  • 打赏
  • 举报
回复
哦。不好意思。写少了一句 。
void main()
{
userListFun();
printf("userList = %d \n ",userList.size());
list<CUser *>::iterator plist;
for (plist = userList.begin();plist!=userList.end();++plist)
{
CUser *user=(&*plist);
printf("user id = %d\n user age= %d\n",user->getId(),user->getAge());
}
}
www_adintr_com 2009-10-22
  • 打赏
  • 举报
回复
userListFun 似乎根本就没有被调用过。。。。
cuiran 2009-10-22
  • 打赏
  • 举报
回复
user 对象不是 new 出来的吗
pcboyxhy 2009-10-22
  • 打赏
  • 举报
回复
已经被你delete掉了
user不是数组,不能delete[]

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧