編寫雙向資料連結清單時,從尾部插入資料時,提示錯誤,望各位同仁執教:
資料結構體:
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;