暴简单系列之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 标准方法和优劣。
...全文
37 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我来看看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也很好,
RomanticProgrammer 2003-07-20
  • 打赏
  • 举报
回复
用TObList。---》需要你的对象从TObject继承。
用std::vector,list等,不需要。
asimpleman 2003-07-20
  • 打赏
  • 举报
回复
gz
kingcaiyao 2003-07-20
  • 打赏
  • 举报
回复
如果你事先已知数组的大小,可以静态定义。
如果数组的大小需要在程序运行才能知道,那么就用动态生成
如果数组的大小在编译期间或在运行期间都无法知道(完全取决于外部的参数),就用stl中的vector,list等容器。
铖邑 2003-07-20
  • 打赏
  • 举报
回复
如果你无法在存储数据之前知道大小,可以用C++标准库中的容器类。
否则,你可以这样:
q_record *q_record_array = new q_record[count];
delete的标准用法是:delete [] q_record_array;

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧