【发布时间】:2014-11-27 14:40:42
【问题描述】:
typedef struct DNode{
int data;
struct DNode *lLink,*rLink;
} DblNode;
typedef DblNode * DblList;
void DestroyDblList(DblList L){
DblList head=L;
DblList p=head->rLink;
if(head->data){ //p->data is wrong?
while(p->data){
free(head);
head=p;
p=head->rLink;
}
free(head);
}
}
在与cmets的行中,当我使用if(p->data){时,我的电脑告诉我
分段错误(核心转储)
但是当我使用if(head->data){ 时就可以了。
这是怎么发生的,是什么原因造成的?
【问题讨论】:
-
p和head是不同的指针。为什么你期望他们有同样的行为?
标签: c pointers dereference