注册 登录
编程论坛 C++教室

如何追加空间

魔城侠客 发布于 2007-10-13 16:43, 944 次点击
如果原先申请的一个数组,比如A[10],空间不够使用,要再追加空间,
在C++中如何追加空间
10 回复
#2
zhb_ice2007-10-13 18:34
貌似不能 可以自己写一个
重新申请一片空间 然后复制过来

或者就用vector省事
#3
小灵心2007-10-13 18:46

倒是有一个办法,用链表:
struct polyNode{
int a[10];
int index;
struct polyNode *next;
};

如果空间不够可以再开个节点出来。。。

#4
aipb20072007-10-13 19:19
以下是引用zhb_ice在2007-10-13 18:34:12的发言:
貌似不能 可以自己写一个
重新申请一片空间 然后复制过来

或者就用vector省事

vector也是用的这个原理!

#5
wdtk2007-10-13 23:37

恩,vector 较好.它的reserve 可以在任何时候轻松实现

#6
HJin2007-10-14 02:11
you cannot add more (memory) space if you use static allocaiton, say

int a[10];

You must use dynamic allocation if you want to reallocate a bigger chunk of memory:

1. in C, you use malloc/realloc
2. in C++, you can use std::vector to manage memory for you.
#7
valentineyzq2007-10-14 08:16
数组是顺序表,它不能解决表长难以确定的问题。顶楼上的,用链表。
#8
discus8152007-10-14 12:15

The man on floor 6 is very good!

#9
xskowscut2007-10-14 12:41
可能用C的realloc比较方便,new也可以,具体可以到csdn上看看new的三种用法。不过用vector还是比较方便
#10
魔城侠客2007-10-14 14:12
嗯,是的,我开始做了个用链表的,后来想用数组试下
后来想追加空间,不过似乎不行了
谢谢啊
#11
grlsir2007-10-14 14:24

可以用一下指针数组,先声明一个较大的指针数组,再用new来实现。

1