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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 02:29   #1
SureRingdove
 
Регистрация: 23.08.2011
Сообщений: 6
По умолчанию C++: Присваивание массивам размерности

С++ почти не знаю. Сразу скажу: гуглил-гуглил, но ничего не понятно
Имею такой массив в main
Код:
int **matr;
Передаю этот массив методу one
Код:
void one(int **matr) {...}
В методе я получаю значения размерности массива m и n
Как присвоить массиву эту размерность?
SureRingdove вне форума Ответить с цитированием
Старый 26.09.2011, 07:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
	int **a=new int*[i];
	for(int q=0;q<i;q++){a[q]=new int[i];}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2011, 07:47   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

SureRingdove
В функцию передается указатель, по указателю выделяется память - это то что вам надо?
функция вернет указатель, но неплохо бы сообщить вызывающей функции и размерность
rrrFer вне форума Ответить с цитированием
Старый 26.09.2011, 08:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Дык автор написал что
Цитата:
В методе я получаю значения размерности массива m и n
Так что вроде все законно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.09.2011, 09:09   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Так что вроде все законно.
все законно, я имел ввиду что кроме массива функции следует вернуть размерность. Иначе как это массив использовать? Ну и память освобождать как-то надо будет.
rrrFer вне форума Ответить с цитированием
Старый 26.09.2011, 15:30   #6
_kilik_
Пользователь
 
Аватар для _kilik_
 
Регистрация: 16.08.2011
Сообщений: 69
По умолчанию

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

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

int **arr(int &m,int &n);//ф-я принемает размереность возращает адр массива
int free_mass(int **mass,int &m);//удаляем массив
int out_mass(int **mass,int m,int n);//выводит массив на монитор
int fill_mass(int **mass,int m,int n);//заполняет массив случайными числами

int main(){
	setlocale(LC_ALL,"Russian");

	int **mass;
	int m=0,n=0;//размереность массива

	mass=arr(m,n);//возращает адр массива
	fill_mass(mass, m, n);//заполняем
	out_mass(mass,m,n);//выводим
	free_mass(mass,m);//удаляем массив
	system ("pause");
	return 0;
}
//****иницилизируем массив****//
int **arr(int &m,int &n){
	cout<<"введите размер массива \nстроки m= ";
	cin>>m;
	cout<<"столбцы n= ";
	cin>>n;

	int **mass;
	mass =new int*[m];
	for(int i=0;i<m;i++)
		mass[i]=new int [n];
	return mass;
}
//****удаляем массив****//
int free_mass(int **mass,int &m){
	for(int x=0;x<m;x++)
		delete[] mass[x];
	delete[] mass;
	return 0;
}
//****выводим массив на монитор****//
int out_mass(int **mass,int m,int n){
	for(int x=0;x<m;x++){
		for(int y=0;y<n;y++)
			cout <<mass[x][y]<<'\t';//выводим на монитор масив
		cout<<endl;
		}
	return 0;
}

//****заполняем массив****//
int fill_mass(int **mass,int m,int n){
	for(int x=0;x<m;x++)
		for(int y=0;y<n;y++)
			mass[x][y]=rand()%10;//заполняем массив случайными числами
	return 0;
}



/*пример ошибка мы не можем передать неинициализированную переменую*/
/*
int er(int **mass){return 0;};
int main(){
	int **mass;
	er(mass);
	return 0;
}*/
_kilik_ вне форума Ответить с цитированием
Старый 27.09.2011, 18:06   #7
SureRingdove
 
Регистрация: 23.08.2011
Сообщений: 6
По умолчанию

Всем спасибо, особенно Stilet и _kilik_
_kilik_, понравилась ваша идея, благодарю, что не пожалели времени написать код
SureRingdove вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица размерности Алексей679 Помощь студентам 2 16.04.2011 14:54
массив размерности n интервалом (-10;10). Scorch92 Помощь студентам 3 27.12.2010 20:39
Матрицы большой размерности... rusl Помощь студентам 3 22.04.2009 08:05
увеличение размерности массива Лучик_света Общие вопросы .NET 3 25.10.2008 04:36