Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IgorSer
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 103
#1

Ошибка в xcode signal sigabrt, c++ - C++

12.05.2014, 12:50. Просмотров 827. Ответов 2
Метки нет (Все метки)

Делаю класс матриц, при компиляции вылизает ошибка "Thread 1: signal SIGABRT".
Возникает в диструкторе класса.
C++
1
2
3
4
5
6
Matrix::~Matrix()
{
 for(int i = 0; i < Rows; i++)
   delete []buffer[i];
 delete[] buffer;
};
Весь код:
Matrix.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdio.h"
 
class Matrix
{
private:
  int Rows; // строки матрицы
  int Cols; // столбцы матрицы
  float **buffer; // матрица
public:
  Matrix(int Row = 1, int Col = 1);
  ~Matrix(void);
  
  void Create();
  void Print();
  
  Matrix Sum(Matrix a); // сумма матриц
};
Matrix.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "Matrix.h"
#include "cmath"
#include "stdlib.h"
#include "iostream"
#include "iomanip"
 
using namespace std;
 
Matrix::Matrix(int Row, int Col)
{
  Rows = Row;
  Cols = Col;
  buffer = new float*[Rows];
  
  for(int j = 0; j < Rows; j++) {
    buffer[j] = new float[Cols];
    for(int i = 0; i < Cols; i++)
      buffer[j][i] = 0.0;
  }
};
 
Matrix::~Matrix()
{
 for(int i = 0; i < Rows; i++)
   delete []buffer[i];
 delete[] buffer;
};
 
void Matrix::Create()
{
  int q = 1;
  //cout << "Введите матрицу: " << endl;
  for(int i = 0; i < Rows; i++)
    for(int j = 0; j < Cols; j++) {
      //cout << "[" << i+1 << "]" << "[" << j+1 <<"]: ";
      //cin >> buffer[i][j];
      buffer[i][j] = q;
      q++;
    }
}
 
void Matrix::Print()
{
  for(int i = 0; i < Rows; i++) {
    for(int j = 0; j < Cols; j++)
      cout << setw(4) << buffer[i][j];
    cout << endl;
  }
}
 
Matrix Matrix::Sum(Matrix a)
{
  if(Rows == a.Rows && Cols == a.Cols) {
    Matrix t(Rows,Cols);
    for(int i = 0; i < Rows; i++)
      for(int j = 0; j < Cols; j++)
        t.buffer[i][j] = buffer[i][j] + a.buffer[i][j];
    return t;
  } else
    return *this;
}
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "iostream"
#include "Matrix.h"
using namespace std;
int main(int argc, const char * argv[])
{
  Matrix a(2,2), b(2,2), c(2,2);
  
  a.Create();
  b.Create();
  
  cout << endl;
  cout << "Матрица 1: " << endl;
  a.Print();
  cout << "Матрица 2: " << endl;
  b.Print();
  
  c.Sum(b);
  c.Print();
}
если есть где то ошибки, поправьте пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 12:50     Ошибка в xcode signal sigabrt, c++
Посмотрите здесь:

ошибка при компилировании на xcode C++
SIGABRT после free malloc C++
C++ Ошибка SIGABRT сразу при запуске
Signal 11 (SIGSEGV) C++
C++ Сигнал SIGABRT
signal.h C++
C++ Runtime Error, Signal 6
C++ objective c и xcode непонятная ошибка
C++ C++ и Xcode
C++ Signal: SIGABRT при delete[]
Ошибка Signal: SIGABRT C++
С++ и Xcode C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12693 / 7167 / 799
Регистрация: 27.09.2012
Сообщений: 17,663
Записей в блоге: 2
Завершенные тесты: 1
12.05.2014, 13:08     Ошибка в xcode signal sigabrt, c++ #2
Где конструктор копий и оператор присваивания?
IgorSer
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 103
12.05.2014, 13:18  [ТС]     Ошибка в xcode signal sigabrt, c++ #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Где конструктор копий и оператор присваивания?
Я только начал изучать классы, поэтому многое не знаю (а этот класс надо уже сдать), можете помочь с кодом?
Yandex
Объявления
12.05.2014, 13:18     Ошибка в xcode signal sigabrt, c++
Ответ Создать тему
Опции темы

Текущее время: 13:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru