私は動的に新しいオブジェクトを割り当てようとしています。その後、私のデストラクタがそれらをC++のメモリ割り当てnew []とdelete []
robot::~robot()
{
if (name) {
delete[] name;
}
delete [] cmds;
}
経由で削除された
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];
私は、私は、単純なint型の値を初期化するためのいくつかのコードを編集した場合、それが壊れる、segementation障害を取得しておきます。私の削除[] cmdsが壊れているので、私はそれをコメントアウトする必要があります。どんな助けでも大歓迎です。私は人々が必要ならば、もっと多くのことを明らかにするでしょう。
問題を示す小さな自己コンパイル可能な例を投稿してください。あなたのコードを見ると、改善することがたくさんあります。また、この例もコンパイルされません。これは*オリジナル*コードではありません。 –
私は2日前にこのコードを見たと確信しています.. http://stackoverflow.com/questions/10001614/c-vector-arrays-in-copy-constructors –
@amit:コードは完全に悲惨ですが、 'cmds'がどこにでも宣言されているのを見ることはできません。私はそれが割り当てられているのを見るだけで、メンバーであるかどうかは分かりません。 –