程式設計新手如何快速發現記憶體溢位或陣列越界?

時間 2021-05-31 00:18:08

1樓:張小豬粉鼻子

個人經驗來講,這個問題還蠻蛋疼的。

我自己的方法是,考慮演算法的時候就副在著想想各種取值的邊界問題。然後測試的時候,官方給的那幾組用例肯定不夠,盡量多寫一點能想的到的 edge case。

對,其實這個問題,我覺得可能更是 edge case 的問題。可能沒有必要把精力死扣在資料越界檢測上,因為 edge case 帶來的問題可能不止這乙個。

2樓:烈日戰神

編譯選項有棧溢位檢測啊當然可以用谷歌的https://github.com/gperftools/gperftools試試

3樓:方應杭

There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

計算機領域最難的兩個問題:

快取失效問題,遇過的都懂

命名問題,這個不用說了超難

1-offset 問題,比如迴圈確定邊界的時候,你很難確定到底要不要 +1 或者 -1

你遇到的就是最後乙個問題。

什麼?你問我明明是三個問題,為什麼要說兩個?你看看第三個問題是什麼 :)

4樓:Allen

這是新手必須要經歷的過程。如果你能快速發現問題,說明你已經積累了經驗。

一開始很難快速找到問題,這是新手都會遇到的問題。經過大量練習後,你就能慢慢積累出排錯的經驗了。

所以,還是得多練,多寫,多思考。

5樓:Jackiu

重要的應該是先梳理邏輯,把這道題目的整個流程都弄清楚,分析每種可能的情況,這樣就能減少因為考慮不全造成的記憶體溢位和陣列越界。

程式設計新手如何提高程式設計能力?

L的悲劇 先了解程式設計是什麼,有幾種語言,哪個好學入門快。審視自己是感興趣還是要轉行長期發展。選擇了就要做目標規劃,是自學還是買課,什麼時間學,多久達到自己的心裡目標 奔到到南牆 程式設計師的修仙之路 築基篇 全心投入的文章 知乎 https zhuanlan p 10 6065134 wfcha...

如何快速部署自己的程式設計環境

sYstemk1t 2.本地安裝虛擬機器 精簡安裝也用不了多少記憶體和硬碟 3.師傅推薦了clion,寫起來挺舒服,師傅用的是docker,但是我沒折騰,直接跑在ubuntu裡 4.日常用vi,除了沒提示也挺好用的! 最帥的物理課代表 我們學校去機房實驗是可以帶著筆記本去的。如果題主的學校不可以,題...

如何快速學好c語言的程式設計?

The One 建議從實踐出發,比如現在就去用C語言寫乙個桌面程式,你就會去了解寫乙個桌面程式具體需要用到哪些東西,哪些函式庫,不需要按著教材上的順序學,把你的想法變成實際,如果沒有想法就去模仿一些簡單的專案做個demo來完善自己的skills,你真正應該掌握的不是C語言,而是學習能力和解決問題的能...