1 c++
我的问题是关于C++
假设我编写了一个函数来将一个项目列表返回给调用者.每个项目都有2个逻辑字段:1)一个int ID,以及2)一些数据可能会有所不同的数据,比如从4个字节到16个字节.所以我的问题是是否使用如下数据结构:
struct item {
int field1;
char field2[MAX_LEN];
或者更确切地说,从堆中分配field2,并要求调用者在完成时销毁:
struct item{
int field1;
char *field2; // new char[N] -- destroy[] when done!
由于字段#2的最大大小很大,因此可以从堆中分配,对吗?所以一旦我知道N的大小,我就调用field2 = new char [N],然后填充它.
现在,这非常低效吗?
在N总是很小的情况下是否更糟,即假设我有10000个N = 4的项目?
Jam*_*lis 11
您应该使用其中一个标准库容器,例如std::string或std::vector<char>; 那么你不必担心自己管理内存.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |