С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как это сделать ? [c++] http://www.cyberforum.ru/cpp-beginners/thread448654.html
Вот допустим у меня есть функция inline void fun(char* аргумент1, char *аргумент2) и есть 2 функция fun("аргумент1 ", переменая1); вопрос:
C++ Рассчитать стоимость квартиры Квадратный метр площади в строящемся доме, стоит 270 у.е. (курс НБУ). Стоимость квартиры С определяется по формуле: С=ВК*П*К, где ВК - стоимость 1 кв. метра площади, П - площадь квартиры, К -... http://www.cyberforum.ru/cpp-beginners/thread448652.html
составить программу для вычисления функции C++
функция \begin{cases} & \text {lg}^{3} x+{x}^{2}\\ & \text \sqrt{x+t}+1/x \\ & \text cosx+t{sin}^{2}x \end{cases} Условие |x|>a |x|=a |x|<a Начальные данные
C++ Преобразование информции из текстового файла в двумерный массив
Есть такая задачка В visual studio 2008 на С++ нужно рассчитать кратчайший путь от точки к точке в лабиринте. Лабиринт задается в текстовом файле, где ####- границы, пробелы - свободные клетки, а...
C++ Рандом растет http://www.cyberforum.ru/cpp-beginners/thread448633.html
srand(time(0)); int j=rand()%1000; char s="afasfa"; switch (message) /* handle the messages */ { case WM_DESTROY: {PostQuitMessage (0); ...
C++ Шаблоны и исключения Возможно ли задать аргумент catch по типу шаблона, чтобы одним блоком catch перехватывать исключения всех специализаций шаблона (int, double и др.) ? #include <iostream> #include <exception>... подробнее

Показать сообщение отдельно
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 454

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

19.02.2012, 00:54. Просмотров 2318. Ответов 6
Метки (Все метки)

Обычно в курсах изложен вопрос о передаче 1- или 2-мерного массива в функцию.
Не менее важно иногда вернуть результат в вызывающую программу.
Что, неужели всегда надо выделять память для такого массива до передачи в функцию?
код
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
#include <iostream>
#include <conio>
void vvod(int **a , int n , int m)
{
    a=new int*[n];
   for (int i=0;i<n;i++)
                a[i]=new int[m];    
   for (int i=0;i<n;i++)
                for (int j=0;j<m;j++)
                        std::cin>>a[i][j];
}
int _main()
{
        setlocale(0,"RUSSIAN");
        int n,m; int ** a;
        std::cout<<"kolvo strok"<<std::endl;
        std::cin>>n;
        std::cout<<"kolvo stolbcov"<<std::endl;
        std::cin>>m;
        vvod(a,n,m);
        int j= a[0][0];//здесь ошибка по памяти в этом месте a=NULL
       getch();
        return 0;
}
дает сбой по памяти только потому что здесь динамическое выделение перенесено из
программы в функцию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.