0
我在C#項目A中編寫了一個DFS(深度優先搜索)函數,它運行正常。然後我創建一個新的C#項目B,它的代碼行數比A多。當我在項目B中使用相同的輸入數據運行相同的函數時,我的VS2008顯示出現堆棧溢出錯誤。在C#中更改堆棧的大小
我可以在C#中更改堆棧的大小嗎?
該功能的名稱是:FindBlocksFounction()。
代碼造成堆棧溢出:
int tempx = nowx + dir[i, 0];
int tempy = nowy + dir[i, 1];
if (tempx < 0 || tempy < 0 || tempx >= m_Bitmap.Height || tempy >= m_Bitmap.Width)
continue;
int next;
next = PointList.FindIndex(t =>
{
if (t.x == tempx && t.y == tempy)
return true;
else
return false;
});//It seems like that FindIndex() in List<> costs some stack room.
if (next == -1)
continue;
if (color[next] == 0)
{
FindBlocksFounction(next);
}
你能告訴我們導致問題的方法的代碼嗎?也許它可以修復。增加堆棧大小隻會延長你的痛苦。 – Tudor 2012-03-31 07:25:48