RoyNewDawn 2019-06-11 21:16 采纳率: 8.3%
浏览 796

函数返回一个智能指针怎么释放它的内存?

#include "pch.h"
#include <iostream>
#include<string>
#include<memory>
#include<vector>
using namespace std;
using T = shared_ptr<vector<int>>;
T func(){
    T vec=make_shared<vector<int>>();
    return vec;
}
T func_1(T vec) {
    int value;
    while (cin>>value)
    {
        vec->push_back(value);
    }
    return vec;
}
void func_2(T vec) {
    for (auto elem : *vec) {
        cout << elem;
    }
}
int main() {
    func_2(func_1(func()));

}

这是我在做C++primer的一道课后题遇到的疑问,这里func()返回的智能指针计数不会为0
怎么释放它对应的内存呢?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
    • ¥15 python天天向上类似问题,但没有清零
    • ¥30 3天&7天&&15天&销量如何统计同一行
    • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
    • ¥15 C#调用python代码(python带有库)
    • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
    • ¥15 活动选择题。最多可以参加几个项目?
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?