Mat::Mat(int R, int C)
{
Ar = new int[C*R];
Co = C;
Ro = R;
}
Mat::~Mat()
{
delete[] Ar;
}
Тем не менее, я получаю сигнал SIGABRT на этом «удалении».сигнал SIGABRT, хотя я использую delete [] в C++
EDIT:
Я использую Xcode, и я пытался добавить жесткий конструктор копирования. Я все еще получаю эту ошибку в удаление []:
Mat::Mat(int R, int C)
{
Ar = new int[C*R];
Co = C;
Ro = R;
}
Mat::Mat(const Mat& M): Co(M.Co), Ro(M.Ro)
{
Ar = new int[M.Co*M.Ro];
for (int i = 0; i<(M.Co*M.Ro); i++) {
Ar[i] = M.Ar[i];
}
}
Mat::~Mat()
{
delete[] Ar;
}
вы создаете объект 'Mat' в любом месте, не используя пользовательский конструктор? –
Я уверен, что это можно решить, используя std :: vector вместо int *. –
stefaanv
Предположим, вы не внедрили правильный конструктор копий и оператор-ассистент? –