Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2014, 16:14   #1
Time1
 
Регистрация: 22.06.2014
Сообщений: 5
По умолчанию Безопасный двумерный массив. С++

Добрый день.
Нужно создать безопасный двумерный массив.
Появляется runtime error. Где ошибка?

Код:
#include <iostream>
using namespace std;

class array {
	int rows;
	int coloumn;
	char **p;
public:
	array(int r, int c);
	~array();
	char &put(int r, int c);
	char get(int r, int c);
};

array::array(int r, int c) {
	rows = r;
	coloumn = c;

	p = new char *[coloumn];
	for (int i = 0; i < coloumn; ++i)
		p[i] = new char [rows];
}

array::~array() {
	for (int i = 0; i < coloumn; ++i)
		delete [] p[i];
	delete [] p;
}

char &array::put(int r, int c) {
	if (c < 0 || c >= coloumn || r < 0 || r >= rows)
		cout << "Границы нарушены\n";
	return p[c][r];
}

char array::get(int r, int c) {
	if (c < 0 || c >= coloumn || r < 0 || r >= rows)
		cout << "Границы нарушены\n";
	return p[c][r];
}

int main() {
	array ob(3, 3);

	ob.put(2, 2) = 'c';
	ob.put(1, 1) = 'a';
	ob.put(5, 5) = '!';

	cout << ob.get(2, 2) << " " << ob.get(1, 1) << " " << ob.get(5, 5) << "\n";
	return 0;
}
Time1 вне форума Ответить с цитированием
Старый 04.07.2014, 16:40   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
ob.put(5, 5) = '!';

и

ob.get(5, 5)
Помог? Оставляем отзыв =)

Последний раз редактировалось Helloween; 04.07.2014 в 16:47.
Helloween вне форума Ответить с цитированием
Старый 04.07.2014, 17:43   #3
Time1
 
Регистрация: 22.06.2014
Сообщений: 5
По умолчанию

Ясно, я не доработал проверку. Спасибо.
Time1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A vikysha55 Помощь студентам 1 16.04.2014 10:50
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40