我想动态分配一个新的对象。C++内存分配新[]和删除[]
int len = (nm == NULL) ? 0 : strlen(nm);
try {
name = new char[len + 1];
}
catch(std::bad_alloc) {
name = NULL;
}
if(name) {
if(nm == NULL)
strcpy(name, "");
else
{
strcpy(name, nm);
cmds=new command [num_of_cmds];
然后我的析构函数已经被他们通过
robot::~robot()
{
if (name) {
delete[] name;
}
delete [] cmds;
}
我不断收到segementation故障,如果我修改一些代码,在一个简单的INT初始化值删除,它打破。我的删除[] CMD中断,所以我必须评论它。任何帮助将不胜感激。如果人们需要,我会澄清更多的事情。
发表一个小的自编可以演示你的问题的例子。注意看你的代码,有很多东西需要改进。而且,这个例子甚至不会编译,我怀疑这是*代码不是*原始*代码。 – 2012-04-06 07:25:31
我很确定我看到这个代码两天前.. http://stackoverflow.com/questions/10001614/c-vector-arrays-in-copy-constructors – 2012-04-06 07:27:28
@amit:虽然代码是完全灾难性的,我不看不到'cmds'在任何地方被声明。我只看到它被分配,并不知道它是否是成员。 – 2012-04-06 07:28:54