c語言如何查看錯誤位置 如果在寫C語言時,代碼沒錯,但是結(jié)果總錯是什么原因?
如果在寫C語言時,代碼沒錯,但是結(jié)果總錯是什么原因?我想你要表達(dá)的是,編繹時,沒顯示出錯,但就是結(jié)果錯了。要細(xì)致地找原因。根據(jù)我以往的經(jīng)驗(yàn),原因有以下幾點(diǎn)。1,內(nèi)存沒有釋放。用new,malloc等分
如果在寫C語言時,代碼沒錯,但是結(jié)果總錯是什么原因?
我想你要表達(dá)的是,編繹時,沒顯示出錯,但就是結(jié)果錯了。要細(xì)致地找原因。
根據(jù)我以往的經(jīng)驗(yàn),原因有以下幾點(diǎn)。
1,內(nèi)存沒有釋放。
用new,malloc等分配內(nèi)存,而在結(jié)束時來釋放,頻繁調(diào)用,系統(tǒng)崩潰。
或者根本沒使用new或malloc,在使用內(nèi)存時異常。
2,變量與地址用錯。
char *p
char cp
第一個p指地址,在程序中用錯。
3,畫筆CPen,CStatic等未恢復(fù)
如:oldpen=pdc一>SelectObject(&m_pen)
在結(jié)束,沒有pdc一>SelectObject(oldpen)
導(dǎo)致顏色混亂。
4,中斷使用不當(dāng),或者回調(diào)callback函數(shù)使用不當(dāng).
5,c語言對變量類型有嚴(yán)格要求,unsigned與signed區(qū)別還是很大的,詳細(xì)檢查函數(shù)原型。
6,最后檢查算法,框圖。是否基本算法有誤。這個很難做。相信大家都很自負(fù),堅(jiān)信算法沒錯。對照數(shù)學(xué)算法與你的程序算法是否一致。
7,浮點(diǎn)運(yùn)算。相信大家認(rèn)為1.0十1.0=2.0無疑。如果double與其它變量轉(zhuǎn)換出問題,沒準(zhǔn)是這樣的結(jié)果:
1.0十1.0=1.9999999999......