@Chipu

C++ при выводе массива срабатывает точка остановки, как исправить?

#include "stdafx.h"
#include <iostream>

using namespace std;

/*

Практическая работа №4

Составить программу на языке C++, состоящую из двух функций с использованием указателей.
В главной функции выполнить ввод двумерного массива и вывод полученных результатов.
В вызываемой функции выполнить обработку двумерного массива.

Индивидуальные задания приведены в приложении №2.

*/


void MatrixTransform(int **matrix,int m)
{
	int swap = 0;
	int minus = 0;
	for (int i = 0;i < m;i++)
	{
		minus = 0;
		swap = matrix[i][0];
		for (int j = 0;j < m;j++)
		{
			if (matrix[i][j] > swap)
				swap = matrix[i][j];
			if (matrix[i][j] < 0 && minus == 0)
				minus = matrix[i][j];
		}
		matrix[i][m] = swap;
		matrix[i][m + 1] = minus;
	}
}
int main()
{
	int m;

	cin >> m;
	int **matrix = new int*[m + 2];
	for (int i = 0;i < m;i++)
		matrix[i] = new int[m];

	for (int i = 0;i < m;i++)
	{
		for (int j = 0;j < m;j++)
			cin >> matrix[i][j];
	}

	MatrixTransform(matrix, m);

	for (int i=0;i<m+2;i++)
	{
		for (int j=0;j<m+2;j++)
		{
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
	system("Pause");
    return 0;
}


Ошибка тут: cout << matrix[i][j] << " ";
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
Вы создаете матрицу (m+2) × m, а потом обращаетесь к элементу [m+1][m+1], иницилизируйте уж полностью

for (int i = 0;i < m+2;i++) matrix[i] = new int[m+2];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы