棧溢位入門

2021-09-02 17:48:29 字數 570 閱讀 9473

今天有個同學問我乙個問題 但是這個問題很好分析 我就打算那個來給他 乙個溢位的概念 

這裡有個程式

#include #define password "1234567"

int verify_password(char *password)

void main()

else}}

看著源** 很容易能看出來這個題的答案是1234567

那麼好 如果我輸入 12345678呢  答案是正確還是錯誤呢

程式顯示的答案還是正確 那麼為什麼

原因很簡單  多出來那個8把 我們函式的返回值 給覆蓋了

然後把我們字串結尾的00頂到返回值那裡了。。。。

那麼如果輸入9位呢  很不幸 9位就不行 

這裡就應該知道為什麼了吧。。。

出入棧應用

以下題目來自leetcode。今天在leetcode學習了資料結構棧,雖然一直知道棧,但是從來沒有實踐過,簡單了解其原理後,看到第一道題目 本文題目二 就懵逼了.然後我就跳過了它,看到題目一,我用不是棧遞減的方法實現了一下成功了。接著開始學習怎麼用棧遞減方法實現,仔細研究了一下,發現真的蠻有意思的。...

出入棧順序解析

在筆試堆疊知識點中通常會考一道典型的出入棧題型,格式為 已知按照0,1,2.9的順序入棧,則下面哪個不能為出棧順序?下面來進行分析。入棧順序 0,1,2,3,4,5,6,7,8,9 出棧情況分析 假如數字5出棧,則代表數字0,1,2,3,4肯定已經入棧,因為5只有入棧了才能出棧。此時0,1,2,3,...

棧溢位和棧記憶體溢位

棧記憶體溢位是指使用者棧的大小最多為8 10mb,分配超過棧大小的變數則會導致棧記憶體溢位。如char c 1024102411 11mb 棧溢位指的是程式向棧中某個變數中寫入的位元組數超過了這個變數本身所申請的位元組數,因而導致與其相鄰的棧中的變數的值被改變。如char c 10 memset c...