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 如何用stata画出文献中常见的安慰剂检验图
    • ¥15 c语言链表结构体数据插入
    • ¥40 使用MATLAB解答线性代数问题
    • ¥15 COCOS的问题COCOS的问题
    • ¥15 FPGA-SRIO初始化失败
    • ¥15 MapReduce实现倒排索引失败
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码
    • ¥50 随机森林与房贷信用风险模型