redspider
October 3rd, 2005, 05:49 AM
What im trying todo is access struct members inside a thread and use the same struct for every thread, the code here compiles fine but when it runs i get a popup saying the memory cannot be found bla bla bla , What am i doing rong ?
The output i want is - 1234
#define X_THREADS 4
typedef struct ThrStc
{
int Anumber;
} ThrStc;
DWORD WINAPI ThreadX(LPVOID param)
{
ThrStc *ps = (ThrStc *)param;
ps->Anumber++;
printf("%d", ps->Anumber);
return 0;
}
int main(void)
{
HANDLE hThread[X_THREADS];
DWORD dwID[X_THREADS];
DWORD dwRetVal = 0;
ThrStc StcNme;
StcNme.Anumber = 0;
for(int i=0; i<X_THREADS; i++ )
{
hThread[i] = CreateThread(NULL, 0, &ThreadX, 0, 0, &dwID[i]);
}
dwRetVal = WaitForMultipleObjects(X_THREADS, hThread, TRUE, INFINITE);
for(i=0; i<X_THREADS; i++)
{
CloseHandle(hThread[i]);
}
return 0;
}
The output i want is - 1234
#define X_THREADS 4
typedef struct ThrStc
{
int Anumber;
} ThrStc;
DWORD WINAPI ThreadX(LPVOID param)
{
ThrStc *ps = (ThrStc *)param;
ps->Anumber++;
printf("%d", ps->Anumber);
return 0;
}
int main(void)
{
HANDLE hThread[X_THREADS];
DWORD dwID[X_THREADS];
DWORD dwRetVal = 0;
ThrStc StcNme;
StcNme.Anumber = 0;
for(int i=0; i<X_THREADS; i++ )
{
hThread[i] = CreateThread(NULL, 0, &ThreadX, 0, 0, &dwID[i]);
}
dwRetVal = WaitForMultipleObjects(X_THREADS, hThread, TRUE, INFINITE);
for(i=0; i<X_THREADS; i++)
{
CloseHandle(hThread[i]);
}
return 0;
}