关于智能指针中的内存释放问题?

maplele20 2007-08-16 05:16:33
void main()
{
vector<string> *pstr = new vector<string>;
vector<int> *pint = new vector<int>;
auto_ptr< map< vector<string>*, vector<int>* > > autoPtr( new map< vector<string>, vector<int> > );
typedef map< vector<string>*, vector<int>* > >::value_type value_type;
autoPtr->insert( value_type( pstr, pint ) );
}

在main结束时还要手动释放掉pstr和pint所指向的内存吗?
...全文
275 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
maplele20 2007-08-16
  • 打赏
  • 举报
回复
谢谢啦,明白了
  • 打赏
  • 举报
回复
vector<string> *str=new vector<string>;这是new一个对象你说用哪个释放?
  • 打赏
  • 举报
回复
就是普通的指针而已,要释放的
maplele20 2007-08-16
  • 打赏
  • 举报
回复
vector<string> *str=new vector<string>;
str->push_back("a");
str->push_back("b");
delete str;//1
delete[] str;//2
该用1还是2来释放呢
xlbdan 2007-08-16
  • 打赏
  • 举报
回复
要手动释放.

除非你的最后一句代码可以读入这两个指针的引用并把它们释放掉
taodm 2007-08-16
  • 打赏
  • 举报
回复
要。因为它们不是智能指针。

64,654

社区成员

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

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