Windows Threads

Started by
2 comments, last by Leadorn 21 years, 8 months ago
Hi I''ve got a little ? why cant I use *data++ in my thread?
  
#include <iostream>
#include <process.h>
#include <Windows.h>
using namespace std;

static int test;

void vTestThread(void *pvoid);
int main(void)
{


_beginthread(vTestThread,0,&test);


while(1)
{

	test++;
	Sleep(250);
	//cout << "Main loop " << test << endl;

}

	
return 0;
}

void vTestThread(void *pvoid)
{
	

	int *data;
	
	data = (int*)pvoid; 

	

	while(true)
	{
		Sleep(250);
		
		//*data++;

		cout << "Värde: " << *data << endl;
		cout << "Adress: " << data << endl;
		//This works but.

		*data+= 5;
		//This dosent work....

		//*data++;


	}



}

  
When I use *data++ it messes with the address of data.
Advertisement
Its to do with operator precedence.
Try (*data)++ instead.
<a href="http://www.purplenose.com>purplenose.com
You want

(*data)++

instead of *data++ if you want to incrememnt the ''pointed at'' variable. *data++ gets the contents of the pointed at variable, and then increments the pointer.
"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
(*data)++

This topic is closed to new replies.

Advertisement