[問題] 記憶體錯誤(已解決)

看板C_and_CPP作者 (nk)時間15年前 (2009/04/06 20:08), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/2 (看更多)
這是小弟一份關於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

04/06 20:32, , 1F
你是不是應該要做copy construct的動作 而不是直接指
04/06 20:32, 1F

04/06 20:40, , 2F
不好意思 還是有點不太懂@@
04/06 20:40, 2F

04/06 21:49, , 3F
你是如何CALL push 的?
04/06 21:49, 3F

04/06 21:51, , 4F
push (&ptr, queue[i]);
04/06 21:51, 4F

04/06 21:56, , 5F
只要把 *(ptr[top])=good; 改成 *(ptr[top])=good; 就OK
04/06 21:56, 5F

04/06 21:57, , 6F
打錯,改成 **(ptr[top]) = good; 應該就可以了
04/06 21:57, 6F

04/06 22:02, , 7F
可是沒辦法complier 會發生語法錯誤@@
04/06 22:02, 7F

04/06 22:09, , 8F
抱歉,是改成 (*ptr)[top] = item 才對。
04/06 22:09, 8F
文章代碼(AID): #19sV2tBY (C_and_CPP)
文章代碼(AID): #19sV2tBY (C_and_CPP)