C++动态创建对象数组

我的程序需要使用一个对象数组,而事先不知道该数组需要多少个元素。如果是其他类型(如结构体)的数组,我可以先创建一个指针,再用malloc来分配内存。对于对象数组,是否也有... 我的程序需要使用一个对象数组,而事先不知道该数组需要多少个元素。
如果是其他类型(如结构体)的数组,我可以先创建一个指针,再用malloc来分配内存。对于对象数组,是否也有类似的方法?是否能同时完成数组中对象元素的初始化(调用构造函数)?
另外,我需要在一个函数里分配这个对象数组的内存后在主函数中使用,应该怎样做?
展开
 我来答
luo_xuewu
2013-01-11 · TA获得超过917个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:341万
展开全部
难道你的C++教材上没有讲这些内容吗?如果真的没有,你应该把它丢掉了.看看<C++Primer>吧,对于上述所有问题,基本上都有详细的解释.
在C++中不应该再使用C的malloc,而应该使用new表达式,operator new函数,定位new以及标准库的内存分配对象.
最后一个问题是想说在进入主函数前就需要分配数组内存吗?我没记错的话这个问题<C++Primer>上没有提到过,一种简单的方法就是定义一个全局对象,在全局对象的构造函数中申请内存,这是利用了全局对象在进入main函数之前初始化的事实,不过这是依赖于编译器实现的一种方法,是一种很容易造成隐蔽错误的方法,这在很多讲C++注意事项的书籍上也有提到过不应该这样做,事实上也很难找到必须这么做的确切理由.
o_wild
2013-01-11 · TA获得超过137个赞
知道答主
回答量:39
采纳率:100%
帮助的人:10.2万
展开全部
用Vector<类型>,List<类型>之类的数据结构。它们是可以动态改变大小的。推荐使用U++里自带的类库。可到http://www.ultimatepp.org/去下载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
en123445
2013-01-11 · TA获得超过152个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:179万
展开全部
你可以搜索一下"C++ 容器"这样的关键字,查找vector,list之类的使用方法。
动态存储值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc1a599a0
2013-01-11 · 超过25用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:67.7万
展开全部
使用std::vector不就行了。
追问
具体例?
追答
#include 

void AddStructA(std::vector* pVectorA)
{
StructA a;
//对a初始化等操作。
pVectorA->push_back(a);
}

int main()
{
std::vector vectorA;
AddStructA(&vectorA);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lileyear
2013-01-11 · TA获得超过1499个赞
知道小有建树答主
回答量:1291
采纳率:0%
帮助的人:917万
展开全部
void×类型的 vector,你看可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式