Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

12.05.2014, 12:50. Просмотров 964. Ответов 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();
}
если есть где то ошибки, поправьте пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 12:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в xcode signal sigabrt, c++ (C++):

Ошибка Signal: SIGABRT - C++
Здравствуйте. Есть задача. Вот условия: Вот мой код. Он компилируется, но перед выходом из программы вылезает ошибка (Signal:...

Signal: SIGABRT при delete[] - C++
Здравствуйте. Есть у меня такой метод: char *Request::addGetParam(char *link, const char *pKey, const char *val) const { char...

Ошибка SIGABRT сразу при запуске - C++
Здравствуйте. Помогите пожалуйста, я в недоумении. Сразу при запуске вылетает сообщение о том, что перехвачен сигнал SIGABRT. Не могу...

Ошибка выполнения signal 6 - C++
Происходит тут, причем вектор строк больше нигде не используется int n,m; cin&gt;&gt;n&gt;&gt;m; vector&lt;string&gt; tabl(n); Если...

objective c и xcode непонятная ошибка - C++
Начал изучать программирование на objective c на xcode по книге Become an Xcoder. все пока хорошо, но почему то данный код не хочет...

Ошибка при компилировании на XCode - C++
всем привет, начну с того что я только новичок в с/c++ ну так вот появилась у меня проблема одна, вся суть проблемы заключается в том что...

2
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
12.05.2014, 13:08 #2
Где конструктор копий и оператор присваивания?
0
IgorSer
0 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 103
12.05.2014, 13:18  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Где конструктор копий и оператор присваивания?
Я только начал изучать классы, поэтому многое не знаю (а этот класс надо уже сдать), можете помочь с кодом?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 13:18
Привет! Вот еще темы с ответами:

Ошибка "Signal received" при использовании taglib - C++
Когда пытаюсь вывести id3v2-&gt;artist(или любое другое ), вне функции где инициализировал id3v2, вылетает signal received;(библиотека taglib)...

Сигнал SIGABRT - C++
Почему выдает SIGABRT вот код test.cpp: #include &quot;obj.h&quot; int main() { Obj hun(&quot;/home/nikita/untitled.obj&quot;); ...

SIGABRT после free malloc - C++
не могу почистить string array matches (2 dim) проблема возникает на линии 114 отмеченной как //Cleaning up an array не могу почистить...

signal.h - C++
Доброго времени суток! Начал разбираться с сигналами и понял что как работать с ними под windows мало литературы... так вот, у меня есть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.