看板 C_and_CPP 關於我們 聯絡資訊
這是小弟一份關於stack的code ptr 是一個型別為struct item 的 array 在第一次執行push 的時候 確定可以順利將element塞進array裡面 只是在第二次執行的時候卻發現記憶體讀取錯誤 (會直接終止) 不知道是不是push裡面出了點問題 因為小弟對pointer也還不是說非常熟悉 所以也不確定問題到底出在哪 先謝謝大家了~ void push (struct item **ptr, struct item good){ top = top + 1 ; printf ("top = %d\n",top); *(ptr[top]) = good ; } struct item{ int time; int index; int From_stair; int To_stair; int weight; };//item -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.215.109
windincloud:你是不是應該要做copy construct的動作 而不是直接指 04/06 20:32
neville123:不好意思 還是有點不太懂@@ 04/06 20:40
xrancyma:你是如何CALL push 的? 04/06 21:49
neville123:push (&ptr, queue[i]); 04/06 21:51
xrancyma:只要把 *(ptr[top])=good; 改成 *(ptr[top])=good; 就OK 04/06 21:56
xrancyma:打錯,改成 **(ptr[top]) = good; 應該就可以了 04/06 21:57
neville123:可是沒辦法complier 會發生語法錯誤@@ 04/06 22:02
xrancyma:抱歉,是改成 (*ptr)[top] = item 才對。 04/06 22:09