С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8

Передача данных в другую область видимости

09.04.2014, 22:11. Показов 1589. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание
Кликните здесь для просмотра всего текста
1. Написать следующие функции для работы с динамическим массивом:
a. Функция распределения динамической памяти.
b. Функция инициализации динамического массива.
c. Функция печати динамического массива.
d. Функция удаления динамического массива.

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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <ctime>
using namespace std;
 
void ArrayInit(int size, int* ar_p) //Выделение памяти
{
    ar_p = new int[size]; //Указатель хранящий адрес выделеной памяти
}
void ArrayDelete(int size, int* ar_p)
{
    delete [size] ar_p;
}
void ArrayBuild(const int size, int* ar_p)
{
    srand (time(0));
    int ar [5];
    for (int i = 0; i < size; ++ i)
    {
        ar [i] = rand() % 10;
    }
    ar_p = &ar [5];
}
void ArrayPrint(int size, int* ar_p)
{
    for (int j = 0; j < size; ++ j)
    {
        cout << *(ar_p + 1) << endl;
    }
}
 
int main()
{
    int size = 5;
    ArrayInit(size, ar_p);
    ArrayBuild(size, ar_p);
    ArrayPrint(size, ar_p);
    ArrayDelete(size, ar_p);
}
Мне непонятно как можно использовать указатель из функции ArrayInit, хранящий адрес выделенной мне памяти, в последующих функциях, являющимися другими областями видимости.
Спасибо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2014, 22:11
Ответы с готовыми решениями:

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

Область видимости
Даю фрагмент программы: #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;cmath&gt; struct elem //тип элемента двусвязного списка ...

Область видимости
Здравствуйте. Тут такое дело: #include &lt;vector&gt; class SomeClass { public: SomeClass( std::vector&lt; int &gt; v ) : vec( v ) {}...

4
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.04.2014, 22:15
tautou, вообще-то такие задачи следует решать с использованием классов и полей данных. Если конечно не хочется извращаться с возвратом по ссылочному аргументу.
0
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
09.04.2014, 22:29  [ТС]
Если я не ошибаюсь,классы это пользовательские типы данных, но мы такого не учили.
Я вот думал использовать инициализацию последующих функций в конце предидущей. (Это называется рекурсией кажется ) Т.е. каждая функция запускает следующую после себя функцию и значение можно передать через сигнатуру инициализируемрй функции.(перегрузка)
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.04.2014, 23:04
Лучший ответ Сообщение было отмечено tautou как решение

Решение

tautou, ну раз ещё не изучали, то могу предложить такой "доработанный" вариант:
Кликните здесь для просмотра всего текста
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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
 
void ArrayInit(int size, int*& ar_p) //Выделение памяти
{
    ar_p = new int[size]; //Указатель хранящий адрес выделеной памяти
}
void ArrayDelete(int* ar_p)
{
    delete [] ar_p;
}
void ArrayBuild(const int size, int* ar_p)
{
    srand (time(0));
    for (int i = 0; i < size; ++ i)
    {
        ar_p[i] = rand() % 10;
    }
}
void ArrayPrint(int size, int* ar_p)
{
    for (int j = 0; j < size; ++ j)
    {
        cout << *(ar_p + j) << endl;
    }
}
 
int main()
{
    int size = 5;
    int* ar_p;
    ArrayInit(size, ar_p);
    ArrayBuild(size, ar_p);
    ArrayPrint(size, ar_p);
    ArrayDelete(ar_p);
}

http://ideone.com/3Tv5oC
1
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 8
10.04.2014, 01:35  [ТС]
Спасибо, теперь понятны мои ошибки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2014, 01:35
Помогаю со студенческими работами здесь

Область видимости
func { int someVariable; { int someVariable; //можно ли как нибудь получить доступ к переменной...

Область видимости
У меня возникла проблема с областью видимости. вот у меня два класса class Obj { public: Win *parent;

Область видимости в С++
В книге С++ Бархатный путь. ( http://khpi-iip.mipk.kharkiv.edu/library/extent/prog/cppvw/cpp_047.html) сказано, что область действия имен...

Область видимости переменных
Не компилируется программа, пишет, что count не является однозначным... #include &lt;iostream&gt; #include &lt;stdio.h&gt; using...

Область видимости в классах
Почему следующий пример выдает такой результат: Bar::testPrivate Bar::testPublic Я полагал он должен вывести: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru