Аргумент, передаваемый в нить, привести к типу - C (СИ)
Формулировка задачи:
У меня в цикле создаются нити:
Я передаю аргумент (void *)d клиенту. Как его преобразовать в int (и вообще в любой другой тип)? Мне он понадобится для установления позиции курсора на экране.
...while(TRUE){ if(d == 10) break; DWORD WINAPI client(void *arg); DWORD client_id; HANDLE hclient; hclient = CreateThread(NULL, 0, client, (void *)d, 0, &client_id); d++; Sleep(1000); }... ...DWORD WINAPI client(void *arg){ WaitForSingleObject(hmtx, INFINITE); printf("clientCreated\n"); ReleaseSemaphore(hmtx, 1, NULL); Sleep(1000); }...
Решение задачи: «Аргумент, передаваемый в нить, привести к типу»
textual
Листинг программы
int *a = (int*)arg;
Объяснение кода листинга программы
- В коде идет объявление переменной
a
типа int* (указатель на целочисленную переменную). - Значение переменной
a
инициализируется с помощью оператора(int*)
. - В качестве аргумента для приведения типа используется переменная
arg
. - Приведение типа выполняется с помощью оператора
=
. - Значение переменной
a
после приведения типа будет представлять собой указатель на целочисленную переменную, которая была передана в функцию в качестве аргумента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д