Re: [問題] 記憶體錯誤(已解決)
剛剛作了一點測試
下面這個code我測試出來的結果 (只有兩個element)
就是fscanf可以寫到queue裡面
但是push 卻只能 push 第一個 element 到 ptr
ptr[0] 可以順利output
ptr[1] 卻只印出 0 0 0 0 0
可是卻沒有發生記憶體的錯誤@@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct item{
int time;
int index;
int From_stair;
int To_stair;
int weight;
};//item
int top = -1;
void push (struct item **ptr, struct item good){
top = top + 1;
printf ("\ntop = %d\n",top);
*ptr[top] = good ;
}
int main(){
struct item *ptr , *queue;
FILE* fp;
fp = fopen ("input2.txt","r");
ptr = (struct item*) malloc(sizeof(struct item)*1024);
queue = (struct item*) malloc(sizeof(struct item)*1024);
for (int i=0; i<2; i++){
fscanf (fp, "%d %d %d", &queue[i].time, &queue[i].index, &queue[i].weight);
fscanf (fp, "%d %d", &queue[i].From_stair, &queue[i].To_stair);
printf ("%d %d %d ", queue[i].time, queue[i].index, queue[i].weight);
printf ("%d %d", queue[i].From_stair, queue[i].To_stair);
push (&ptr, queue[i]);
}
printf ("\n\n");
for (int i=0; i<2; i++){
printf ("%d %d %d ", ptr[i].time, ptr[i].index, ptr[i].weight);
printf ("%d %d", ptr[i].From_stair, ptr[i].To_stair);
printf ("\n");
}
system("pause");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.215.109
推
04/06 22:02, , 1F
04/06 22:02, 1F
→
04/06 22:03, , 2F
04/06 22:03, 2F
→
04/06 22:03, , 3F
04/06 22:03, 3F
→
04/06 22:05, , 4F
04/06 22:05, 4F
推
04/06 22:09, , 5F
04/06 22:09, 5F
→
04/06 22:11, , 6F
04/06 22:11, 6F
→
04/06 22:57, , 7F
04/06 22:57, 7F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
2
8