Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.04.2009, 16:25   #1
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Репутация: 18
Вопрос Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях

Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях...
Пример но не рабочий ((

Код:
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;

void form_matr(int m,int n, int** matr)
{
matr = new int*[m];
for(int i=0;i<m;i++)
 {
  matr[i] = new int[n];
  for(int j=0;j<n;j++) matr[i][j] = rand()%100;
  cout<<endl;
 }
cout<<endl;
}

void print_matr(int m,int n,int** matr)
{
for(int i=0;i<m;i++)
 {
  for(int j=0;j<n;j++)
   {
    cout.width(4);
    cout<<matr[i][j];
   }
  cout<<endl;
 }
}


int main()
{
    int **matr;
	int n,m;
    cout<<"Vvedite kolichestvo strok: ";
    cin>>m;
    cout<<"Vvedite kolichestvo stolpcov: ";
    cin>>n;
	form_matr(m,n,matr);
	print_matr(m,n,matr);
	return 1;
}
Olya90 вне форума   Ответить с цитированием
Старый 20.04.2009, 16:57   #2
NotProCoder
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 15
Репутация: 10
По умолчанию

Глобальная переменная... А далее возня с указателями. (было б делфи, то пример привёл бы)
NotProCoder вне форума   Ответить с цитированием
Старый 20.04.2009, 17:19   #3
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Репутация: 18
По умолчанию

эх....жаль ((
Olya90 вне форума   Ответить с цитированием
Старый 20.04.2009, 18:20   #4
Sazary
В тени
Профессионал
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
Репутация: 999
По умолчанию

Возвращайте в функции указатель на выделенную память.
Код:
int** form_matr(int m,int n)
{
int **matr = new int*[m];
for(int i=0;i<m;i++)
 {
  matr[i] = new int[n];
  for(int j=0;j<n;j++)
    matr[i][j] = rand()%100;
 }
return matr;
}
и вызывайте так:
Код:
matr = form_matr(m,n);
И не забывайте очищать память:
Код:
for(int i=0;i<m;i++)
 delete[] matr[i];
delete[] matr;
Sazary вне форума   Ответить с цитированием
Старый 20.04.2009, 18:39   #5
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
Репутация: 43

icq: 445435153
По умолчанию

------------------
Goblin вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста, как сделать, чтобы в Edit можно было ввести цифры от 0 до 12. ciev Общие вопросы Delphi 6 14.05.2016 18:45
Как сделать, чтобы форму можно было перемещать только внутри главной формы SeregaKo Общие вопросы Delphi 7 26.03.2009 13:48
Как сделать так, чтобы форму можно было тостать не только за заголовок? Никки Общие вопросы Delphi 1 04.09.2008 14:34
Как сделать так, чтобы переключение между окнами было автоматическим? barand Свободное общение 9 07.07.2008 23:54
Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая пр Kamikadze_666 Помощь студентам 2 23.05.2007 02:48


02:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.