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

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

Войти
Регистрация
Восстановить пароль
 
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
#1

STL и поток - C++

04.04.2011, 02:31. Просмотров 399. Ответов 2
Метки нет (Все метки)

Есть вектор, объявленный в основной программе, состоящий из ссылок на компоненты типа TImage и TCheckBox:
C++
1
2
3
4
5
6
7
struct mass
{
TImage *img;
TCheckBox *Chek;
};
static std::vector<mass> ListImegov(300);
static std::vector<mass>::iterator ListIterator;
В отдельном потоке создаются эти компоненты.
Но как поток завершается обратится из основного потока к данным элементам по типу:

C++
1
2
3
ListIterator = ListImegov.begin();
ListIterator += 2;
Button2->Caption = ListIterator->img->Hint;
невозможно.
Выходит ошибка несуществующий или недопустимый адрес.
Хотя в отдельном потоке данный код работает без проблем.

Как с этим бороться не подскажите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2011, 02:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL и поток (C++):

STL Заполнить строку латинским алфавитом и вывести ее в выходной поток - C++
Заполнить строку латинским алфавитом и вывести ее в выходной поток. С++ Добавлено через 20 минут вот пример выполнения, но в нем...

STL. Не работает вывод через << в поток когда использую итераторы :( - C++
Вроде бы ничего сложного, но почему-то работать не хочет. Никак не могу понять почему ( Ругается, когда пишу void main() { ...

STL Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток - C++
Заполнить вектор длинной 10 случайными числами от 0 до 9 и вывести его в выходной поток.

STL Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток - C++
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. Добавлено через 19 минут пример, но в нем ошибки ...

Стандартный поток и STL (std::copy to std::cout) - C++
#include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;algorithm&gt; #include &lt;functional&gt; #include &lt;string&gt; using namespace std; ...

Скопировать поток и добавить ошибки в поток - C++
Здорова господа! Есть задачка: &quot;Скопируйте поток объектов типа Name_and_address и вставьте в него столько ошибок, сколько сколько...

2
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.04.2011, 07:38 #2
Видимо, проблема в том, что память выделяется в одном потоке, а используется в другом.
Хотя, все потоки выполняются в одном адресном пространстве...
Я не знаю, как реализованы эти компоненты, ибо Борланд. Попробуй для создания объектов вызывать функцию из основного потока, не забыв про синхронизацию.

Добавлено через 2 минуты
В любом случае, память должна освобождаться в том же потоке, в котором она выделялась.
1
Zubossi
1 / 1 / 0
Регистрация: 24.02.2011
Сообщений: 62
04.04.2011, 11:05  [ТС] #3
Спасибо.
Заработало, не понятно только почему не работало до.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2011, 11:05
Привет! Вот еще темы с ответами:

Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. - C++
Совсем не понял эту тему. Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде...

Скопировать поток в поток - C++
Есть ли возможность скопировать один поток в другой. Например int main() { ofstream (*P) = new ofstream; ofstream...

STL - C++
Доброго времени суток! Возникли трудности с пониманием задачи и принципа работы программы. Задание следующее: &quot;Разработать программу -...

STL - C++
Задача 2. Во входном файле in.txt расположена таблица, в каждой строке которой хранится &quot;владелец&quot;, &quot;домашнее животное&quot;, &quot;кличка&quot;....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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