![]() |
|
Модераторы: bsa |
![]()
|
|
| Snegovik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Всем доброго времени суток!
Я более менее знаю язык VB, тк его преподавали в универе, сейчас по роду деятельности(разработчик софта и железа основанного на MK) занялся изучением С++. Столкнулся с проблемой, разработав алгоритм решающий, поставленную задачу, убедившись в его исправности и выгодности отладил его на VB используя глобально объявленные переменные и массивы(алгоритм подразумевает работу с одними и теме же динамическими массивами из разных процедур), которые подразумевалось в С++ затолкать в одну структуру. Но столкнулся с тем что как писать глобально такую структуру и вызывать её в любой функции не представляю. При том что операторы malloc realloc и free мне известны, и я уже с ними работал. Подразумевалось следующая структура:
Вопрос 1) Возможно ли в структуре реализовать динамический массив? Вопрос 2) Проблема в мышлении VB и глобально объявленных массивах? И надо просто сделать глобальные переменные а по функции передавать указатель на массив. |
|||
|
||||
| Dem_max |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
в структуре можно хранить указатель на динамический массив.
Выделили по указателю память на 200 элементов типа int
Если переменные глобальные то передавать указатель не обязательно, если локальные то передавать указатели на массивы. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||||
|
|||||||
| SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
Структуры в С++ почти как классы, только с меньшей защитой имеют конструкторы и деструкторы...
Может Вам лучше использовать классы? Это сообщение отредактировал(а) SVN74 - 18.8.2010, 17:50 |
|||
|
||||
| Snegovik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Проблема в том что я с ними ещё не работал, и если признаться думал что классы это те же структуры...
С одной точки зрения хочется поглубже узнать язык С++ и написать программу так как правильно с точки зрения языка, а с др. стороны так как проще и удобнее и быстрее. Затеял я работу с глобальными структурами только потому что хочу написать так что получше узнать С++... И как ещё более правильнее я не знаю. Поэтому и прошу помощи. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 1 Всего: 18 |
Это сугубо мое личное мнение. 1. Структура использует стек, а стек не такой уж и большой, учитывая что структуры могут только копироваться... 2. В отличие от классов структуры работают по прямому доступу к их типам, а классы через указатели... 3. По умолчанию структура в отличие от класса все типы держит открытыми, а это наталкивает на мысль... Классы используют кучу, не копируются, доступны только через указатели, по умолчанию все типы закрыты. На мой взгляд, - возможности защиты класса выше... |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Snegovik86, в С++ динамический массив называется вектор. Для этого в стандартной библиотеке шаблонов существует соответствующий шаблон, который называется vector. Чтобы его использовать, нужно подключить заголовочный файл <vector>, а в том месте, где нужен динамический массив элементов TK написать std::vector<TK>:
|
|||
|
||||
| Snegovik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Спасибо большое!
|
|||
|
||||
| Snegovik86 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Боюсь что так вот
не получиться по причине того что я работаю не совсем с "чистым" С++, а с IAR C/C++ for Advanced RISC Machines Ltd’s для ARM® Cores, а именно для sam9261. Сделал вывод такой вывод т.к. при подключении <vector> выдаёт тьма ошибок при компиляции... |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
Snegovik86, пользуйтесь значит другим компилятором. Потому что vector это неотъемлемая часть c++ и не поддерживать его стыдно.
|
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Дело не в плохом компиляторе, а в том, что не везде уместо поддерживать полностью стандарт С++. То есть урезанный С++ - это не баг, а фича.
Топикстартеру советую гуглить реализации вектора на си. Ну или написать самому. Добавлено через 24 секунды Самому можно написать даже с классами. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 3 Всего: 23 |
||||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Меня совершенно случайно посетила гениальная мысль. Странно, что у компилятора есть заголовочный файл вектор, а скомпилировать его он не может. Возможно запускается С-компилятор вместо С++?
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |