我想動態分配一個新的對象。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