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

Как объявить динамический массив, чтобы он был виден во всех процедурах программы? - C++

Восстановить пароль Регистрация
 
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 01:34     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #1
Доброго времени суток! Суть проблемы: в Visual Studio создана форма с кнопкой, при нажатии на которую, из файла считываются необходимые значения для построения графика. Данные из файла записываются в динамический массив из которого они потом должны будут браться для использования в функции отрисовки. Вот как раз с использованием массива в другой функции и возникли проблемы. Подскажите как реализовать. Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2013, 01:34     Как объявить динамический массив, чтобы он был виден во всех процедурах программы?
Посмотрите здесь:

C++ Динамический массив в С++: как поменять длину массива по ходу выполнения программы?
C++ Кто нибудь подскажет просто как объявить динамический массив M на M (с буквой M, я не ошибся)
Почему нельзя объявить динамический массив глобально C++
C++ Объявить массив? Запросто! Объявить массив массивов? А как это?
Как правильно передать динамический массив в функцию, увеличивающую его размер, чтобы изменения сохранились C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
02.09.2013, 01:43     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #2
У вас получаете 2 Unit ? Ну 2 .cpp (исходника).
Вам просто необходимо подключить название второго .cpp файла, где хотите использовать ваш массив.
Допустим: File1.cpp (в нем массив, int massiv[10]);
А программу вы пишите в File2.cpp, в хедер пишите #include "File1.cpp"
Так-же не забывайте про static и extern.
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 01:50  [ТС]     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #3
Похоже я что-то совсем не так сделал, ибо код написан в заголовочном файле Form1.h
Получается надо весь код перенести в .cpp файлы? Но он же привязан к графическому интерфейсу.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
02.09.2013, 03:03     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #4
Цитата Сообщение от Bend3r Посмотреть сообщение
А программу вы пишите в File2.cpp, в хедер пишите #include "File1.cpp"
Вы хоть сами понимаете, что советуете? Никогда так не делайте.

Pigmalion, покажите, что у Вас уже есть.
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 10:58  [ТС]     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #5
Вот. Массивы которые нужно использовать в другой процедуре на 387 строке
C++
1
2
double *MoveFl = new double[kol]; //динамические массивы
int *LoadInt = new int[kol];
и их надо добавить в процедуру отрисовки
C++
1
2
3
4
5
private: void Drawing()
 { 
  for (int i=0; i<kol; i++)
    this->chart1->Series["Surface"]->Points->AddXY(MoveFl [i],LoadInt[i]);
 }
Вложения
Тип файла: rar Dyno2.rar (740.4 Кб, 5 просмотров)
Тип файла: txt данные.txt (2.4 Кб, 2 просмотров)
censor
8 / 8 / 0
Регистрация: 05.06.2013
Сообщений: 60
02.09.2013, 11:08     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #6
используй груб
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
02.09.2013, 11:30     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #7
в каком файле находится функция Drawing и в каком два массива?
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 11:42  [ТС]     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #8
В Form1.h и функция и массивы.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
02.09.2013, 11:44     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #9
а сами массивы создаются не в Drawing а в другой функции?
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 11:47  [ТС]     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #10
Ага
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
02.09.2013, 11:50     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #11
тогда можно объявить в глобальной области (в самом верху файла, вне какой либо функции)
C++
1
2
double *MoveFl=0;
int *LoadInt = 0;
в функции, где выделяется память
C++
1
2
MoveFl = new double[kol]; 
LoadInt = new int[kol];
ну и в Drawinge будут видны они
Pigmalion
 Аватар для Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
02.09.2013, 11:55  [ТС]     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #12
Спасибо. Я правильно понял? Вот так сделать?
Миниатюры
Как объявить динамический массив, чтобы он был виден во всех процедурах программы?  
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
02.09.2013, 11:58     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #13
ага, ну либо в namespace Dyno2 запихать, если все функции находятся в той области
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 687
02.09.2013, 12:18     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #14
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вы хоть сами понимаете, что советуете? Никогда так не делайте.
Ну то что в хедер подключать надо только прототипы - то я это знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2013, 01:17     Как объявить динамический массив, чтобы он был виден во всех процедурах программы?
Еще ссылки по теме:

C++ Что нужно изменить, чтобы был динамический массив?
Как правильней объявить динамический двухмерный массив C++
C++ Переписать все элементы из этих массивов в массив С так, чтобы массив С был упорядоченным

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

Или воспользуйтесь поиском по форуму:
censor
8 / 8 / 0
Регистрация: 05.06.2013
Сообщений: 60
03.09.2013, 01:17     Как объявить динамический массив, чтобы он был виден во всех процедурах программы? #15

Не по теме:

Цитата Сообщение от Raali Посмотреть сообщение
в каком файле находится функция Drawing и в каком два массива?

Не по теме:

а бурумбум не ахти?

Почему я должен вас предсказывать?
Yandex
Объявления
03.09.2013, 01:17     Как объявить динамический массив, чтобы он был виден во всех процедурах программы?
Ответ Создать тему
Опции темы

Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru