• 全部
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

暴简单系列之11: 结构数组的动态定义。

com235 2003-07-20 11:59:00
我想在程序中定义如下结构,但是需要的是一个数组,数组位数我要在程序中计算后才知道需要多少,大约是 new r_record[n];


struct q_record {
char where[80];
int times[4];
}q_record;


在程序中我计算后知道了需要5000个,这时我如何声明5000个q_record来存储我的数据,
一并请教用后的delete 标准方法和优劣。
...全文
8 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
我来看看CB 2003-07-24
不要那么复杂!以后有时间楼主再去研究list.

q_record *qr1;

qr1=new q_record[5000]; // 分配内存

处理语句...

delete []qr1; // 删除指针
回复
纪俊 2003-07-24
同意
回复
zhangrongbo 2003-07-24
同意楼上的,
回复
warton 2003-07-22
还是stl好
回复
com235 2003-07-22
vector??
回复
keysu 2003-07-21
我基本同意kingcaiyao(AKing).
我觉得如果数组大小可以再用之前可以计算出大小,就new可以用vector new r_record[n];
用后 delete[] re_record;到时候记得别忘了释放内存空间就可以了,我们很多同事都怎么用.
动态数据用出vector也很好,
回复
用TObList。---》需要你的对象从TObject继承。
用std::vector,list等,不需要。
回复
asimpleman 2003-07-20
gz
回复
kingcaiyao 2003-07-20
如果你事先已知数组的大小,可以静态定义。
如果数组的大小需要在程序运行才能知道,那么就用动态生成
如果数组的大小在编译期间或在运行期间都无法知道(完全取决于外部的参数),就用stl中的vector,list等容器。
回复
SuperDay 2003-07-20
如果你无法在存储数据之前知道大小,可以用C++标准库中的容器类。
否则,你可以这样:
q_record *q_record_array = new q_record[count];
delete的标准用法是:delete [] q_record_array;
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2003-07-20 11:59
社区公告
暂无公告