1
我通過函數MontaVetorVerticalOtimizado(x, y, Vetor)
的參數發送數組int Vetor[33];
,在該數組填充之後,問題是在填充數組之後,函數OtimizaVerticalDentina()
的所有變量都用值數組,這似乎令人困惑,所以我加的圖像,同時調試使其更容易理解:變量的值根據向量值而變化
第一功能:
void OtimizaVerticalDentina() {
int Vetor[33];
int x, y;
for (x = 1; x < NewImage.SizeX() - 1; x++)
{
for (y = 10; y < NewImage.SizeY() - 10; y++)
{
MontaVetorVerticalOtimizado(x, y, Vetor);
VerificaIntensidadeVetorVerticalOtimizado(Vetor);
if (bPreenche) {
NewImage.DrawPixel(x, y, 255, 255, 255);
} else {
NewImage.DrawPixel(x, y, 0, 0, 0);
bPreenche = true;
}
}
}
}
二級功能:
void MontaVetorVerticalOtimizado(int Px, int Py, int Vetor[33])
{
int x, y;
int i = 0;
unsigned char r, g, b;
for(x = Px - 1; x <= Px + 1; x++)
{
for(y = Py - 10; y <= Py + 10; y++)
{
NewImage.ReadPixel(x, y, r, g, b);
Vetor[i] = r;
i++;
}
}
}
注:
ImageClass NewImage; // global
*我在第一個測試方法中創建了其他變量,它們也發生了變化,有沒有人知道可能發生了什麼?
哪個編譯器?你是否添加了打印語句來確認(以防調試器對你說謊)? – Borgleader
啊,我的眼睛,太白了! – Stargateur
@Borgleader GNU GCC編譯器,我在填充數組之前和之後在控制檯上輸出變量的值,並顯示編譯器沒有說謊。 –