编写双向数据链表时,从尾部插入数据时,提示错误,望各位同仁执教:
数据结构体:
typedef struct node{
int nVal;
struct node *pStc_prev;
struct node *pStc_next;
}stcNode;
typedef struct{
stcNode stcHead;
stcNode stcTail;
}stcLnk;
int nNum = 0,nSize = 0;
stcLnk sLik = {0};
vLnkNode_init(&sLik);
nLnkNode_addHead(&sLik,50);
nLnkNode_addHead(&sLik,10);
nLnkNode_addTail(&sLik,70); ** /*现在的问题就是,每当执行到此语句时,便会出现错误*/ 问题在下面**
stcNode *pStc_node = new stcNode, *pStc_first = NULL, *pStc_mid = NULL, *pStc_last = NULL,*pStc_tmp = NULL;
if(!pStc_node)
return 0;
pStc_node->nVal = nVal;
pStc_node->pStc_next = NULL;
pStc_node->pStc_prev = NULL;
for(pStc_tmp = &pStc_link->stcHead;pStc_tmp != &pStc_link->stcTail;pStc_tmp = pStc_tmp->pStc_next){
pStc_first = pStc_tmp;
pStc_mid = pStc_first->pStc_next;
pStc_last = pStc_mid->pStc_next; ** /*执行语句到此,提示Access violation reading location 0x00000008*/,一直没有查出具体原因,望同仁执教**
if(pStc_mid == &pStc_link->stcTail){
pStc_first->pStc_next = pStc_node;
pStc_node->pStc_next = pStc_mid;
pStc_mid->pStc_prev = pStc_node;
pStc_node->pStc_prev = pStc_first;
break;
}
}
delete pStc_node;
return 1;