作者ppp168p (时光暂停)
看板C_and_CPP
标题[问题] 如何把字串当成linked list中的item
时间Thu Mar 19 23:38:32 2009
大家好:
我今天在使用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)
1F:→ softwind:你有打算在记忆体中保留资料吗? 03/20 00:03
2F:→ a127a127:没仔细看,不过你怎麽要了一块记忆体後又指向原来的区块 03/20 00:18
3F:→ a127a127:temp->data->date=date这几行 先改成strcpy吧 03/20 00:18
※ 编辑: ppp168p 来自: 59.113.48.121 (03/20 00:58)
4F:→ a127a127:唔...你应该去google一下strcpy... 03/20 01:42
※ 编辑: 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)