作者neville123 (nk)
看板C_and_CPP
標題[問題] 記憶體錯誤
時間Mon Apr 6 20:08:22 2009
這是小弟一份關於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