链表使用过程中指针越界求指点

链表使用过程中指针越界求指点,第1张

p=L=q=(student)malloc(sizeof(struct LNode))

for(i<7i++)

{//构建一条递增的单向链表

p->number=2*i*i

p=p->next//你的next指向什么,还没赋值

}

迭代器不是“地址”,它是对象的一个逻辑的位置信息,不明白你所谓的“数组”什么意思,iterator当然指向的是单个对象

cin代表的是一个输入流,其能读入的东西当然也可以看作一个序列对象,因此也可以有逻辑地址。不要把“指针”“iterator”一定和链表之类的容器联系起来

没办法,必须避免这种情况,尤其是写 *** 作。。。。 两种办法,你在写代码中,主动避免写能超出限制的代码。。。比如你写 A[i] ,你只要保证你的代码中i不会大于限制即可。。。。另一种就是自检,先判断i的大小。。。用数组要保证数组够你使用,如果发现不够可以在申请一个数组内存,和原来的组合使用(比如数组链表,这个也比较常用,保证数组总是够长,比如写一个链表类,一旦超出就申请新的,你就不用关心这个问题了,很多智能化的高级语言的数组本身就是一个类,它能够自动调整长度)。。。当然如果你用的是C语言,可以靠代码来写一个这种功能的东西,但由于C不能运算符重载,没法让他看起来像个数组,只能是 类似 Datas(void* Array,int Index)的方式来使用数组。

可以使用数孩碃粉度莠道疯权弗护组一般是要先判断是否溢出的,可以使用realloc扩展数组大小,可以将数组存储改为链表格式存储,这样就不会受到限制了,可以用单向链表、双向链表或环形链表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11500937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存