C++小程序 运行时提示Aborted (core dumped)

Leetcode 上的一道算法题
#include
#include

using namespace std;

class Solution {
public:
vector > permute(vector nums) {
vector > rt;
rt = permu_dfs(nums, 0, rt);
//cout<< rt.size()<< endl;
return rt;
}

vector<vector<int> > permu_dfs(vector<int>& nums, int start, vector<vector<int> > input){
    if(start == nums.size() - 1){
        input.push_back(nums);
        return input;
    }
    for(int i = start; i < nums.size(); i++){
        swap(nums[i], nums[start]);
        permu_dfs(nums, start + 1, input);
        swap(nums[i], nums[start]);
    }
}

};

int main(){
vector a{1,2};
Solution s;
vector > rt;
rt = s.permute(a);
cout<< rt.size()<< endl;
return 0;
}
运行时报错:
*** Error in `./a.out': double free or corruption (out): 0x0000000000400ad0 ***
Aborted (core dumped)
之前同样的代码还报过munmap_chunk(): invalid pointer, 不知道这回报的为啥不一样。。

试过permu_dfs函数rt传参数用引用,返回值改成void,问题解决了,但一直没搞明白这代码问题出哪了。

查看全部
ohbrown
ohbrown
2015/06/04 18:44
  • cpp
  • g++
  • linux
  • 点赞
  • 收藏
  • 回答
    私信

3个回复