只是好奇,有沒有人遇到過堆溢出/緩衝區溢出在C#中的異常?堆/緩衝區溢出異常
3
A
回答
8
您可能會導致C#中的不安全代碼發生緩衝區溢出。例如:
public unsafe struct testo
{
public int before;
public fixed int items[16];
public int after;
}
testo x = new testo();
x.after = 1;
for (int i = 0; i <= 16; ++i)
{
unsafe
{
x.items[i] = 99;
}
}
Console.WriteLine(x.after);
上面將打印「99」,因爲它溢出緩衝區。
如果沒有不安全的代碼,我不知道有什麼辦法可以導致緩衝區溢出,但不會觸發異常。
0
根據Buffer overflow的含義,IndexOutOfRangeException是溢出引起的異常。您可以通過訪問超出其分配大小的數組索引來輕鬆獲取它。同樣做足夠的遞歸,你可以得到StackOverflowException。我不確定你在找什麼,所以你可能想澄清一下。
相關問題
- 1. 緩衝區溢出(VS)緩衝區溢出(VS)堆棧溢出
- 2. 堆棧緩衝區溢出
- 3. 緩衝區溢出異常通過fscanf_s
- 4. 查找堆棧緩衝區溢出
- 5. 堆棧方向和緩衝區溢出
- 6. NSData轉換堆緩衝區溢出
- 7. 利用堆棧緩衝區溢出
- 8. 緩衝區溢出堆棧衛士
- 9. 堆棧溢出和緩衝區溢出有什麼區別?
- 10. 緩衝區溢出
- 11. 緩衝區下溢異常java
- 12. 緩衝區溢出緩衝區長度
- 13. 緩衝區溢出異步js'eachSeries
- 14. 緩衝區溢出怪異的行爲
- 15. 常見緩衝區溢出攻擊
- 16. 問題與堆棧溢出保護和緩衝區溢出
- 17. 緩衝區溢出不溢出
- 18. 緩衝區溢出攻擊
- 19. 測試緩衝區溢出
- 20. JSP緩衝區溢出
- 21. 數組緩衝區溢出
- 22. QTime緩衝區溢出?
- 23. 過程緩衝區溢出
- 24. C++溢出緩衝區
- 25. 的strtok - 緩衝區溢出
- 26. 緩衝區溢出援助
- 27. Dillema與緩衝區溢出
- 28. 緩衝區溢出與gets()
- 29. PHP緩衝區溢出
- 30. 利用緩衝區溢出
我會認爲使用'COM Interop'而不是純.NET開發時會出現這些類型的錯誤?任何人都知道我是否正確地認爲?你在說.NET中的託管堆嗎? – 2010-10-22 18:45:38
這真的是一個「只是好奇」的問題嗎?在那種情況下,我投票結束它。我們每個人都有許多問題「只是好奇」,但他們並不都是值得回答的。另一方面,如果你確實遇到過這樣的例外,需要處理,我們可以談談。 – abelenky 2010-10-22 18:51:16
我正在尋找純淨的.NET。我特意使用C++導致了緩衝區溢出(很久以前,不確定這是否適用於今天)。 – Viv 2010-10-22 18:52:54