Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2012, 14:52   #1
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию Ошибка в использование структуры (С++)

Ошибка Run-Time Check Failure #3 - The variable 'param' is being used without being initialized.
Возникает в цикле с первой же строки param->kol=kolPot; при выполнение


Код:
	setlocale(LC_ALL, "RUS");
	std::cout << "Введите количество потоков\nкол-во = ";
	std::cin >> kolPot;
	
	h=(double)PI/n;
	
	DWORD dwIdTh;
	
	HANDLE *nt = new HANDLE[kolPot];
	Data *param;
	for(int i=1; i<=kolPot; i++) {

		param->kol=kolPot;
		param->nomer=i;

		nt[i]= CreateThread(NULL, 0, SinInt, (LPVOID)param, 0, &dwIdTh);
	}
Человек
Артём Волжанкин вне форума Ответить с цитированием
Старый 10.11.2012, 14:57   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
Data *param;
Это указатель, и он никак не инициализирован , что, собственно, и сообщает компилятор.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.11.2012, 15:02   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и он никак не инициализирован
А точнее ты не выделил память (Через new или alloc()) для этого указателя.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2012, 15:02   #4
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию

Код:
Data str, *param;
	for(int i=1; i<=kolPot; i++) {

		str.kol=kolPot;
		str.nomer=i;
		*param=str;
		nt[i]= CreateThread(NULL, 0, SinInt, (LPVOID)param, 0, &dwIdTh);
	}
так же ошибка
Человек

Последний раз редактировалось Артём Волжанкин; 10.11.2012 в 15:13.
Артём Волжанкин вне форума Ответить с цитированием
Старый 10.11.2012, 15:12   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Вы пытаетесь обратиться к полям структуры через указатель,
Код:
param->kol=kolPot;
param->nomer=i;
но указатель на структуру не инициализирован, только описан его тип:
Код:
Data *param;
- param будет хранить указатель на структуру типа Data.



Вроде так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 10.11.2012, 15:17   #6
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию

но если я заполнил структуру str потом рефералу указателя присваиваю str
то снова возникает ошибка
Человек
Артём Волжанкин вне форума Ответить с цитированием
Старый 10.11.2012, 15:20   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
param = &str;
а не *param = str;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в выводе структуры (С++) Артём Волжанкин Помощь студентам 2 09.07.2012 11:24
структуры, ошибка Kaela Общие вопросы C/C++ 3 10.05.2012 20:25
Повторное использование структуры Karmadon Общие вопросы C/C++ 2 29.02.2012 12:00
использование списка для структуры dimulka2010 Помощь студентам 0 28.03.2010 15:46
EXCEL - Использование структуры "ЕСЛИ" sting Помощь студентам 1 21.11.2009 10:46