Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
#1

Вызов функции динамического выделение памяти - C++

14.11.2011, 02:08. Просмотров 915. Ответов 3
Метки нет (Все метки)

Здравствуйте!

Нужна помощь!

Написал функцию выделение памяти под двумерный динамический массив, которая возвращает масив размером n на m!

C++
1
2
3
4
5
6
7
8
9
int Matrix(int **matr, int n, int m)
{
    
    int **mass = new int *[n];
    for (int i = 0; i < n; ++i) 
        mass[i] = new int [m];  
 
    return mass[n][m];
}
С этим как то проблем нету!

Проблема состоит в том, что не получается вызвать эту функцию

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
int main()
{
    setlocale(LC_CTYPE,"Russian");
    int n, m;
    
    cin >> n >> m;
 
    //int matr[n][m] = Matrix(matr, n, m); не подходит 
           //ИЛИ
           //Matrix(matr, n, m); то понятно не объявленный matr
 
    
    ifstream inarray;
    inarray.open("matrix.txt"); // открытие файла для ввода
 
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j) 
        {
            inarray >> matr[i][j];
            cout << matr[i][j] << "\t";
        }                           
    cout << endl;
    }                               
    
    system("pause >> null");
    return 0;
}

Подскажите каким образом можно вызвать эту функцию!

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 02:08     Вызов функции динамического выделение памяти
Посмотрите здесь:

Если выделение памяти для динамического массива задать void-функцией, можно ли будет оперировать с ним в main? - C++
Если выделение памяти для дин.массива задать void-функцией, можно ли будет оперировать с ним в main или придётся отдельно выделять память в...

Динамическое выделение памяти внутри функции (что вернуть из функции, если не удалось выделить память?) - C++
такое дело, есть функция, которая выполняет некоторую операцию, функция при успешном выполнении должна вернуть 0, при ниудачном код...

Выделение памяти в функции - C++
Здравствуйте. Кто-нибудь знает почему при выделении памяти в функции set для массива b выводит `S) `S) `S) Duality isn't what it...

Динамическое выделение памяти в функции - C++
Здравствуйте, столкнулся с такой проблемой: Нужно в функции считать из файла количество строк и столбцов, затем создать динамический...

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

Выделение памяти в процессе выполнения функции - C++
есть массив указателей на int, объявленный глобально int* arr; но заранее я не знаю, сколько мне понадобится одномерных массивов -...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
g-man
8 / 8 / 1
Регистрация: 02.04.2010
Сообщений: 25
14.11.2011, 02:14     Вызов функции динамического выделение памяти #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Matrix(int **matr, int n, int m)
{
        
        matr = new int *[n];
        for (int i = 0; i < n; ++i) 
                matr[i] = new int [m];  
}
 
int main( void )
{
          int **a = NULL; Matrix( a, 10, 10 );
          return 0;
}
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
14.11.2011, 02:23     Вызов функции динамического выделение памяти #3
g-man
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Matrix(int **matr, int n, int m)
{
        
        matr = new int *[n];
        for (int i = 0; i < n; ++i) 
                matr[i] = new int [m];  
}
 
int main( void )
{
          int **a = 0; 
          Matrix( a, 10, 10 );
          a[5][5] = 1; // wtf?
          return 0;
}
Упс!

Добавлено через 2 минуты
Правильный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int** Matrix(int n, int m)
{
        
        int **matr = new int *[n];
        for (int i = 0; i < n; ++i) 
                matr[i] = new int [m];  
        return matr;
}
 
int main( void )
{
          int **a = 0; 
          a = Matrix( 10, 10 );
          a[5][5] = 1;
          return 0;
}
Добавлено через 45 секунд
Либо исправленный код g-man
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Matrix(int **&matr, int n, int m)
{
        
        matr = new int *[n];
        for (int i = 0; i < n; ++i) 
                matr[i] = new int [m];  
}
 
int main( void )
{
          int **a = 0; 
          Matrix( a, 10, 10 );
          a[5][5] = 1;
          return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2011, 02:30     Вызов функции динамического выделение памяти
Еще ссылки по теме:

Выделение памяти в функции на примере калькулятора - C++
#include &quot;stdafx.h&quot; #include &quot;std_lib_facilities.h&quot; #include &quot;windows.h&quot; //------------------------------------------------- class...

Указатели и функции. Динамическое выделение памяти - C++
1) Напишите программу, которая позволяет вводить динамический одно-мерный целочисленный массив и посредством вызова функции опреде-лять...

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

Динамическое выделение памяти для структуры в функции - C++
Объясните не могу понять. На С++ пишу совсем недавно. Суть вопроса, при первом запуске программы происходит проверка на существование...

Выделение динамической памяти размером полученным из функции - C++
Функция ввода размера динамического массива int Kolvo(){ int x; printf(&quot;Введите количество элементов массива числом(от 1 до...

Выделение памяти под укзатель переданный функции - C++
Доброго времени суток, форумчане! :) Вот коды нужных файлов: //main.cpp #include &quot;func.h&quot; char *name; char *p; ...


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

Или воспользуйтесь поиском по форуму:
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
14.11.2011, 02:30  [ТС]     Вызов функции динамического выделение памяти #4
Спасибо! все работает!) Выручили!
Yandex
Объявления
14.11.2011, 02:30     Вызов функции динамического выделение памяти
Ответ Создать тему
Опции темы

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