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扩展数组大小,可以将数组存储改为链表格式存储,这样就不会受到限制了,可以用单向链表、双向链表或环形链表
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)