我正在研究C++程序,該程序應該將火焰強度的2D圖像轉換爲3D模型。該程序主要處理多個矩陣操作,我都使用指針來實現(我知道,我可以使用矢量)。 輸入文本文件後,對數據值進行鏡像和平滑處理,然後對圖像的每一行進行校正計算。在此計算函數的開始處,程序停止在隨機位置上,但在for循環中聲明y_values向量。C++程序在沒有任何理由的情況下隨機停止
下面是代碼片段:
void CorrectionCalculation(Matrix Matrix_To_Calculate, int n_values, int polynomial_degree, int n_rows)
{
for (int h = 0; h < n_rows; h++)
{
//Initialising and declaration of the y_values-vector, which is the copy of each matrix-line. This line is used for the correction-calculation.
double* y_values = new double(n_values);
for (int i = 0; i < n_values; i++)
{
y_values[i] = Matrix_To_Calculate[h][i];
}
//Initialisiing and declaration of the x-values (from 0 to Spiegelachse with stepwidth 1, because of the single Pixels)
double* x_values = new double(n_values);
for (int i = 0; i < n_values; i++)
{
x_values[i] = i;
}
當計算一行,該程序工作得很好。但是當我添加一些代碼來計算整個圖像時,程序停止。
'double * y_values = new double(n_values);'這不會產生數組,而是一個double元素。這個修正後程序的行爲如何(其中有兩個)? – lared
「沒有理由」。是的,你的程序是完美的,C++思維的設計者是什麼。 – Blindy
你是對的,我應該寫下「沒有明顯的理由(對我而言)」。 y_values和x_values的初始化是我忘記使用[]而不是()的唯一發生。相當惱人的是,沒有弄清楚這個失敗,但似乎我站在管道上。 –