矢量坏投掷alloc expetion甚至不访问任何元素

时间:2013-05-03 12:35:17

标签: c++

我写下面的代码

#include <vector>
#include <cmath>
#include <cfloat>
#include <iostream>
#include <algorithm>
using namespace std;



vector< vector<double> > merge_sort(vector< vector<double> >& source, vector< vector<double> >& result){





}

int main(){

       vector < vector<double> >test;
       vector < vector<double> >temp;

    merge_sort(test, temp);

}

而且我的例外情况是,程序关闭了,我只是得到了错误的alloc exction,我不知道为什么,我甚至没有访问任何元素。

请告诉我如何解决它。

提前谢谢。

2 个答案:

答案 0 :(得分:7)

你的问题是你的函数有一个返回类型,但你没有返回任何东西。这为您提供了未定义的行为。见§6.6.3:

  

离开函数末尾相当于没有值的return;这会导致值返回函数中的未定义行为。

答案 1 :(得分:2)

正如我在评论中所说,因为你实际上并没有返回任何东西,所以你现在有了未定义的行为。最有可能在尝试清理堆栈时崩溃。