容量の異なる2つの動的に割り当てられたアレイを交換しようとしています。私は使用しようとします:
int *temp = arr1;
int arr1 = arr2;
int arr2 = temp;
ただし、このアプローチは機能しません。だから私は別のアプローチを試みます:
ItemType *temparr1 = new ItemType[other.capacity];
std::copy(setMember, setMember+capacity, temparr1);
ItemType *temparr2 = new ItemType[this->capacity];
std::copy(setMember, setMember+capacity, temparr2);
delete [] this->setMember;
delete [] other.setMember;
other.setMember = temparr1;
this->setMember = temparr2;
残念ながら、このアプローチではエラーメッセージが表示されます:"WindowsがHw1.exeでブレークポイントをトリガーしました。
これは、ヒープの破損が原因である可能性があります。これは、Hw1.exeまたはロードされたDLLのいずれかにバグがあることを示しています。」
動的に割り当てられた配列をどのように交換できますか?どうも