0
点赞
收藏
分享

微信扫一扫

C++双向数据链表BUG

DYBOY 2022-11-16 阅读 131

编写双向数据链表时,从尾部插入数据时,提示错误,望各位同仁执教:

数据结构体:

typedef struct node{

int nVal;
struct node *pStc_prev;
struct node *pStc_next;

}stcNode;

typedef struct{

stcNode stcHead;
stcNode stcTail;

}stcLnk;

主函数:
int main(){

int nNum = 0,nSize = 0;

stcLnk sLik = {0};

vLnkNode_init(&sLik);

nLnkNode_addHead(&sLik,50);
nLnkNode_addHead(&sLik,10);
nLnkNode_addTail(&sLik,70); ** /*现在的问题就是,每当执行到此语句时,便会出现错误*/ 问题在下面**

........

数据实现本身:
int nLnkNode_addTail(stcLnk *pStc_link,int nVal){

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;

举报

相关推荐

0 条评论