看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《lovemost (最愛)》之銘言: : typedef struct STACK : { : char item [100]; : int top; : }STACK; : STACK S; : : void push(char ); : void pop(char *); : : int main(){ : S.top=0; : void push(char x){ : S.top++; : S.item[S.top]=x; : } : : void pop(char *x){ : *x=S.item[S.top]; : S.top--; : } 我只看了statck的部分 假設top永遠指向空白位置。 S.top = 0; void push(char x) { S.item[S.top++] = x; } void pop(char *x) { *x = S.item[--S.top]; } 其實以前寫作業的時候,會加個 isFull 和 isEmpty的檢查。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.217.111.110
lovemost:恩...書上是有這麼說~@@"~不過我在想應該加一個if就好 04/09 22:45
lovemost:if (S.top >= 0){S.item[S.top++]=x;} 04/09 22:45
lovemost:補上試試看.. 04/09 22:46
tsaiminghan:對。只是加個if判斷而已 04/09 22:47
sunneo:不是加了就好= = 04/09 22:47
sunneo:push該判斷的是ifFull, pop該判斷的是ifEmpty 04/09 22:48
sunneo:S.top >= 0加在 push是恆成立的 04/09 22:48
sunneo:除非S.top overflow 04/09 22:48
tsaiminghan:啊,沒注意到二樓寫的判斷是錯的… 04/09 22:49
sunneo:sorry樓上 我不是針對你回應的 ^^" 04/09 22:50
tsaiminghan:了解 ^^ll 04/09 22:52
lovemost:剛又試了好一陣子><"~請問是否要讓出記憶體空間給程式 04/09 23:17
lovemost:目前參數少可以做,可是參數一多就會直接跳掉... 04/09 23:17
tsaiminghan:有錯誤訊息嗎? 04/09 23:19
tsaiminghan:另外如果用vs2005的話,可以設中斷點,對debug很方便 04/09 23:22