首页
论坛
课程
招聘
[求助]连续内存链表赋值指针出错,自动NULL
2019-8-9 16:41 1109

[求助]连续内存链表赋值指针出错,自动NULL

2019-8-9 16:41
1109

我用连续内存做一个单向链表.赋值指针的时候不知道为什么结果指针除了前俩个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
.................


[看雪官方培训] Unicorn Trace还原Ollvm算法!《安卓高级研修班》2021年秋季班火热招生!!

最后于 2019-8-9 20:56 被ezrealik编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回