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

Реализация работы с массивом только в одном потоке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать класс, реализующий стек http://www.cyberforum.ru/cpp-beginners/thread562803.html
Очень нужна хоть какая-нибудь помощь! У меня никак не получается написать программу а заказывать времени уже нет. обратиться больше некуда. Вот задание: "Описать класс, реализующий стек. Написать программу, использующую этот класс для моделирования Т-образного сортировочного узла на железной дороге. Про* грамма должна разделять на два направления состав, состоящий из вагонов двух типов...
C++ Какая то гога с ЖЛовой либой Гога лезет от строки OpenGLContext=wglCreateContext(WindowContext); , выше есть #pragma comment(lib, "opengl32.lib") #pragma comment(lib, "glu32.lib")и HGLRC OpenGLContext; . А сама гога такая: Compiler: Default compiler Building Makefile: "C:\tsserver\Projects\cpp\dev\SeaJackals\Makefile.win" Executing make... http://www.cyberforum.ru/cpp-beginners/thread562782.html
C++ программа подсчитывающая число повторения в тексте
Доброго времени суток! Уважаемые участники форума, возникла следующая проблема: к данной задаче создать файл не получается из-за использования в ней функции, не компилируется , любой помощи буду благодарен Задача:Одним из способов идентификации автора литературного произведения – подсчет частоты вхождения отдельных слов. В заданном тексте найти 20 наиболее часто встречающихся слов с...
C++ Вычислить площадь круга для радиусов: r=5; r=10;r=15.
вычислить площадь круга для радиусов: r=5; r=10;r=15. вычислить площадь круга оформить в виде функции...заранее спасибо
C++ vector http://www.cyberforum.ru/cpp-beginners/thread562751.html
Объявляю двумерный массив следующим образом: vector< vector <int> > m_Mas; Как в таком случае нужно добавлять элементы и обращаться к ним?
C++ Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный класс Triangle с полями-сторонами. Определить методы вычисления углов и площади треугольника. подробнее

Показать сообщение отдельно
BigED
0 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 26

Реализация работы с массивом только в одном потоке - C++

01.05.2012, 15:37. Просмотров 590. Ответов 3
Метки (Все метки)

Доброго времени суток!
Пытаюсь реализовать программу, в которой будет 2 потока, в оба передается массив, один поток инкрементирует, другой декрементирует.
Пока конечная цель сделать так, что бы в один момент времени с массивом работал только один поток и не прерывался, пока не закончит обработку, разумеется использование глобальной переменной не вариант.
Сейчас все работает так: запускается поток инкрементирования, обрабатывает массив (может даже несколько раз), после - запускается поток декрементирования и все ломается при попытке работы с массивом.
Но я работаю с копией массива (потом хочу придумать способ возврата значения в main)! ..во всяком случае задумка была работать с копией..
Вопрос заключается в том, почему возникает ошибка и как её устранить.
Так же приведу куски программы.
C++
1
2
3
4
5
6
7
8
9
10
11
DWORD WINAPI Thread_1(LPVOID pParam) //функция потока, второй поток почти идентичен
{
    DWORD dwResult=0;
    int *array; //  будущая !!!копия!!! массива
    array=new int[20]; 
    array=((int*)pParam); 
    cout<<"its work 1 !";
        for(int i=0;i<20;i++) {array[i]++; cout<<array[i];} //работа с массивом
    return dwResult; 
}
CreateThread(NULL,NULL,&Thread_1,(LPVOID)array,0,0); //создание потока1 в main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru