首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

双向链表赋值有关问题

2013-11-01 
双向链表赋值问题//文件项typedef struct tagFILE_ITEM{char*name__u32attr_ext__u64sizestruct tagFIL

双向链表赋值问题
//文件项
typedef struct tagFILE_ITEM
{
char*                 name;
__u32                 attr_ext;
__u64                 size;    
struct tagFILE_ITEM  *prev;
struct tagFILE_ITEM  *next;
}FILE_ITEM_T;

typedef FILE_ITEM_T** FILE_ITEM_MAP_T;

//文件列表
typedef struct tagFILE_LIST
{
char                 Dir[MAX_PATH_LEN];        
__u32                TotalItem;               
FILE_ITEM_T         *ListHeader;              
FILE_ITEM_T         *CurItem;               
struct tagFILE_LIST *Parent;                   
struct tagFILE_LIST *Child;               
}FILE_LIST_T;




FILE_LIST_T * pList = NULL, *p, *q, *s1, *s2, *s3, *s4, *s;

以下这样赋值可以,有正确的输出结果
s1->CurItem = s1->CurItem->next;
eLIBs_printf(".............insert sort.2.........%s....\n", s1->CurItem->name);


以下这样赋值不行,为什么?
s2->CurItem = s1->CurItem->next;
eLIBs_printf(".............insert sort.2.........%s....\n", s2->CurItem->name);

[解决办法]
如果你想的是把s1->CurItem->next的地址值赋值给s2->CurItem 的话!这样没有问题!
如果是实际地址上的值的话,就不行!
[解决办法]
代码没贴,看不出为什么!
语法没问题,s1, s2,在帖子里看不出有没有初始化。
[解决办法]
语法上没有问题。

引用:
//文件项
typedef struct tagFILE_ITEM
{
char*                 name;
__u32                 attr_ext;
__u64                 size;    
struct tagFILE_ITEM  *prev;
struct tagFILE_ITEM  *next;
}FILE_ITEM_T;

typedef FILE_ITEM_T** FILE_ITEM_MAP_T;

//文件列表
typedef struct tagFILE_LIST
{
char                 Dir[MAX_PATH_LEN];        
__u32                TotalItem;               
FILE_ITEM_T         *ListHeader;              
FILE_ITEM_T         *CurItem;               
struct tagFILE_LIST *Parent;                   
struct tagFILE_LIST *Child;               
}FILE_LIST_T;




FILE_LIST_T * pList = NULL, *p, *q, *s1, *s2, *s3, *s4, *s;

以下这样赋值可以,有正确的输出结果
s1->CurItem = s1->CurItem->next;
eLIBs_printf(".............insert sort.2.........%s....\n", s1->CurItem->name);


以下这样赋值不行,为什么?
s2->CurItem = s1->CurItem->next;
eLIBs_printf(".............insert sort.2.........%s....\n", s2->CurItem->name);

热点排行