[問題] 如何把字串當成linked list中的item

看板C_and_CPP作者 (時光暫停)時間15年前 (2009/03/19 23:38), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/2 (看更多)
大家好: 我今天在使用linked list 時侯發生一個問題, 以下是為所宣告的linked list結構 typedef struct stack *stack_pointer; typedef struct element *history; struct stack { history data; stack_pointer link; }; struct element { char *date; char *weight; }; 我想要在我的linked list 中的每個node插入兩個element 分別是 date 和 weight 可是我在插入的部份出了些問題!! 以下為我插入 void add (stack_pointer *top, char *date, char *weight) { // date 和 weight 為我想要插入的element stack_pointer temp = (stack_pointer) malloc (sizeof(stack_pointer)); if(temp==NULL){ printf("The memory is full\n"); exit(0); } temp->data->date=(char *)malloc(sizeof(date)); temp->data->date=date; temp->data->weight=(char *)malloc(sizeof(weight)); temp->data->weight=weight; temp->link= *top; *top=temp; } 上面宣告成 temp->data->date=(char *)malloc(sizeof(date)); 我是想說原先temp->data->date 沒有給予空間儲存 date 所以我在那裏宣告一塊記憶體空間給date儲存!! 我原先是寫成 temp->data->date=date; temp->data->weight=weight; 沒有宣告記憶體空間給temp->data->date ! 不過那時候執行結果也和我下面所描素的執行結果一樣!!! 囧 所以我才把這兩行留著!! temp->data->date=(char *)malloc(sizeof(date)); temp->data->weight=(char *)malloc(sizeof(weight)); 我剛剛有試了一下strcpy (temp->data->date,date); 這方式 但還是不行ˊ.ˋ 囧~ 剛打錯 ============================================================ 但是這樣子假設我插入: AAAA 777 ABBB 888 CCCC 898 DDDD 222 我把這個list中的element的值給印出來看時,我發現他的結果 都為: DDDD 222 DDDD 222 DDDD 222 DDDD 222 想請問一下大家我是不是哪裡寫錯了!!!! 以下是我完整的code http://rafb.net/p/YsTiFo73.html 我讀進來date.dat的格式為 2009/3/18 44 2009/3/18 11 2009/3/18 11 2009/3/18 11 2009/3/18 11 2009/3/18 11 2009/3/18 1111 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.72.235 ※ 編輯: ppp168p 來自: 140.116.72.235 (03/19 23:40)

03/20 00:03, , 1F
你有打算在記憶體中保留資料嗎?
03/20 00:03, 1F

03/20 00:18, , 2F
沒仔細看,不過你怎麼要了一塊記憶體後又指向原來的區塊
03/20 00:18, 2F

03/20 00:18, , 3F
temp->data->date=date這幾行 先改成strcpy吧
03/20 00:18, 3F
※ 編輯: ppp168p 來自: 59.113.48.121 (03/20 00:58)

03/20 01:42, , 4F
唔...你應該去google一下strcpy...
03/20 01:42, 4F
※ 編輯: ppp168p 來自: 59.113.48.121 (03/20 08:53) ※ 編輯: ppp168p 來自: 140.116.72.235 (03/20 10:02) ※ 編輯: ppp168p 來自: 140.116.72.235 (03/20 10:02) ※ 編輯: ppp168p 來自: 140.116.72.235 (03/20 10:11) ※ 編輯: ppp168p 來自: 140.116.72.235 (03/20 10:11)
文章代碼(AID): #19mcRvze (C_and_CPP)
文章代碼(AID): #19mcRvze (C_and_CPP)