我要在一个循环体内new一块内存,可是只有循环结束时我才能知道最终该分配多大内存,那循环过程中我该怎么分配内存才好? std::vector<Struct_Data*> vecData;while(!m_pRecSet->adoEOF){ ... ... Struct_Data *pData = new Struct_Data; ... ... vecData.push_back(pData); m_pRecSet->MoveNext();}m_pRecSet->Close(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.分别分配内存2.ado难道不能得到所有的记录数?? 将new换成remalloc函数,这样的话,你每次在循环里分配时,它会根据nRecordIndex的值重新分配,并保留原来分配的内存不动,即会接着原来的内存重新分配且不释放原来的内存。 pRst->getRecordCount()可以获得记录数不定长内存你可以用CMemFile(跟CFile用法差不多,但是是在内存中的),原理的话可以参考vector的内存分配机制:先申请一块大小为N的内存块,不够时再申请大小为2N的内存块,将原来的拷过来并释放掉 c++自定义类如何接收消息映射 服务启动模式的获取 dll中自定义函数在被调用异常 adplus使用提问 短连接的服务端开发,如何主动断开AcceptEx产生的连接,然后重利用? 只允许一个实例运行的问题! dll中的函数可以知道是哪个程序调用自己了吗 周六周日劳动仲裁部门休息吗?兼散分! 请教各位有什么高效一点的方法可以对TXT文件进行搜索,然后将结果采用分页显示呢? 对话框显示之后是置顶的,如何让它在失去焦点时不置顶? 关于视图切换的问题,谢谢 关于CFile 汉字读写的乱码问题
2.ado难道不能得到所有的记录数??
不定长内存你可以用CMemFile(跟CFile用法差不多,但是是在内存中的),
原理的话可以参考vector的内存分配机制:
先申请一块大小为N的内存块,不够时再申请大小为2N的内存块,将原来的拷过来并释放掉