如何动态增加数组大小(类似与VB的redim preserve)??
问题点数:20、回复次数:9Top
1 楼qaymuic(qaymuic)回复于 2002-01-24 13:11:39 得分 0
???Top
2 楼bzshow(风人)回复于 2002-01-24 13:56:45 得分 20
用CArray就行了呀.Top
3 楼zhh_soviet(慕容复)回复于 2002-01-24 14:24:39 得分 0
用指针,分配内存Top
4 楼listening(zqy)回复于 2002-01-24 14:29:01 得分 0
newTop
5 楼mbxxx(zhoutong)回复于 2002-01-24 14:32:10 得分 0
例如:
int *p[];
p=new int[ma];
其中ma为可变
用完后
delete p[];
大体是这样;Top
6 楼sunny7516huang(蜀山剑侠)回复于 2002-01-24 14:46:56 得分 0
楼上的,不知你自己测试过没有,如果ma不为CONST类型或宏定义,就不可能通过编译!!
C编译器不允许定义大小不定的数组。
但可通过动态内存分配实现。如,
C : int *pBuffer = remalloc()
WIN16: GlobalAlloc()/GlobalReAlloc()
WIN32: HeapAlloc()/globalReAlloc() Top
7 楼qaymuic(qaymuic)回复于 2002-01-24 16:52:20 得分 0
有没有其他方法了?关键是之前的数据不能丢失。
例如:class person
{public:
CString name;
long age;
}
person *persons[0]=new person;
persons[0].name="wang";
persons[0].age=32;
这时候要在数组里再加一个人persons[1],我该如何做而不失去persons[0]的资料?
Top
8 楼sunny7516huang(蜀山剑侠)回复于 2002-01-24 18:11:07 得分 0
直接使用集合类型类或模板即可,如 CObArray / CTypedPtrArray<,>Top
9 楼cmpp()回复于 2002-02-23 19:40:51 得分 0
我来学习一下!Top




