0
我在遇到以下一段代碼時遇到了問題。我正在使用Boost來進行矩陣乘法。我正在使用Gtesting來測試我的代碼。當我測試下面的代碼時,我得到以下錯誤。分段錯誤(核心轉儲) - 無法修復錯誤
Segmentation fault (core dumped)
我知道這與我正在使用的指針有關,但我找不到錯誤。我嘗試了幾件事,但沒有運氣。我的代碼如下。我正在運行Ubuntu 14.04。
BLAS::matrix<double>* PolyFilter::getCoef(const std::queue<double> y const std::queue<double> x, const BLAS::vector<double>& w)
{
int size = y.size();
queue<double> yList = y;
BLAS::matrix<double> pos(size,1);
BLAS::matrix<double>* vand = makeVandermondeMatrix(x);
BLAS::matrix<double>* weights = makeDiag(w);
BLAS::matrix<double> *temp1,*temp2,*temp3,*temp4,*temp5;
BLAS::matrix<double>* temp6 = new BLAS::matrix<double>(size,size);
std::cout<<size<<endl;
for(unsigned int i = 0; i < size; i++)
{
pos.insert_element(i,0,yList.front());
yList.pop();
}
*temp1 = BLAS::prod(BLAS::trans(*vand), *weights);
*temp2 = BLAS::prod(*temp1, *vand);
if(rfalInverse(*temp2, *temp3))
{
*temp4 = BLAS::prod(*temp3, BLAS::trans(*vand));
*temp5 = BLAS::prod(*temp4,*weights);
*temp6 = BLAS::prod(*temp5, BLAS::trans(pos));
}
return temp6;
}
Thankyou的任何幫助。這個錯誤讓我發瘋。
*死亡發生在哪裏?請在調試器中運行debug-build來捕獲崩潰,並使用調試器在代碼中找到崩潰的位置。 –
你說過你嘗試了幾件事情。你嘗試了什麼?你嘗試過使用'gdb'嗎? – lurker
直接明顯的錯誤是你沒有初始化'temp1'(不要爲它指定空間),而是給'* temp1'指定一個值。這是一個疏忽嗎?或者你需要學習C/C++中的指針基礎知識嗎? – JSF