数组会不会溢出?

2019-07-17 10:23发布

最近在写一个处理大量数据的采集程序,遇到一个问题,请大神们解答解答。
如果我定义一个一维数组,但我事先不知道有多少元素,所以只能初始化为一个元素。然后在采集数据期间,不断的在这个数组后面加入元素。那么问题来了,这个数组会不会溢出?比方说,这个数组加到第十个元素时,在内存中,这个数组所对应的内存块后面有另外的变量(例如另一个数组的元素),此时如果再向前面所说的数组的最后面加入元素,会不会把另一个数组的元素给覆盖掉?

或者哪位大神给解答一下,数组的工作原理。数组最后一个元素有没有下一个元素的指针?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
andy_wsj
1楼-- · 2019-07-17 14:57
这个已经不是数组的概念了吧,数组的内存是连续分配的,逐渐增加在内存中如果有大片连续的内存可以做到,但是一旦超过最大连续范围,使用分配函数就会失败。如果没有使用内存分配函数,那么程序就会崩溃。有指针的做法是链表,但是内存会增加很多额外开销。数组的最后一个元素的下一个没定义进去是不能直接使用的。 最佳答案
嘟嘟123
2楼-- · 2019-07-17 19:49
新手,只能帮顶了,打酱油的
lyxsky
3楼-- · 2019-07-18 00:50
andy_wsj 发表于 2015-4-20 11:06
这个已经不是数组的概念了吧,数组的内存是连续分配的,逐渐增加在内存中如果有大片连续的内存可以做到,但 ...

谢谢你的回答。

1. 如果是这样的话,是不是必须要初始化才能解决问题?
2. 对于我上面提到的不能初始化的问题,有什么解决办法(链表那个东东怎么用?)?
lyxsky
4楼-- · 2019-07-18 03:01
嘟嘟123 发表于 2015-4-20 15:05
新手,只能帮顶了,打酱油的


谢谢参与!(额,字数太少,不能回帖,-----这是凑字数的-----)
andy_wsj
5楼-- · 2019-07-18 04:40
 精彩回答 2  元偷偷看……
小虎宝
6楼-- · 2019-07-18 10:08
你预先设定一个范围,开辟一个动态缓冲区,满了覆盖就行,如果全面的有用,满的就搬到别处去存储。

一周热门 更多>