-
-
未解决 [求助]连续内存链表赋值指针出错,自动NULL
-
发表于: 2019-8-9 16:41 2096
-
我用连续内存做一个单向链表.赋值指针的时候不知道为什么结果指针除了前俩个pNext赋值成功,后面的链表pNext赋值全部NULL了.
是我代码哪里错了吗? 我调试的时候查看了,G::ptidinfo[G::ptidinfo->nCount].pNext. 赋值是成功的.数据也是正确的,但是在内存中却没有任何改变. 调试器监控G::ptidinfo这段连续内存也没有变红. 然后我强制赋值计数 1 2 3 4这样的数字前置转换成指针后在赋值给pNext. 结果是成功赋值且不会NULL. 有大佬知道这是为什么嘛. 是我的代码哪错了嘛?
前面的数据赋值代码是正常赋值的.就这段pNext赋值会自己变成NULL. .... G::ptidinfo->nCount++; //链表项计数; G::ptidinfo = (TidInfo*)realloc(G::ptidinfo, (G::ptidinfo->nCount + 1) * sizeof(TidInfo)); //连续内存申请; if (!G::ptidinfo)break; void* p= &G::ptidinfo[G::ptidinfo->nCount];//获取链表尾部指针地址; memset(p, 0, sizeof(TidInfo));//链表尾部内存清零; G::ptidinfo[G::ptidinfo->nCount - 1].pNext = (TidInfo*)p;//把指针赋值到链表pNext;
赋值结果,进行赋值次数100
G::ptidinfo[0].nCount=100;
G::ptidinfo[0].pNext=G::ptidinfo[1];
G::ptidinfo[1].pNext=NULL;
-就是数据赋值都成功且正确,但是指针赋值,除了前面2个赋值成功,后面全是NULL
.................
最后于 2019-8-9 20:56
被ezrealik编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: