for(i=0;i<N;i++)
  ThreadHandle[i]=CreateThread(NULL,0,Send,(LPVOID)&i,0,&ThreadId);
DWORD WINAPI SendReply(LPVOID number)
{
  int w=*(int *)number;
.......
一查:w竟然是&&^$%^@$^@^$^@^,
娘的,你气不气,想不想砸

解决方案 »

  1.   

    for(i=0;i<N;i++)
      ThreadHandle[i]=CreateThread(NULL,0,Send,(LPVOID)&i,0,&ThreadId);
    DWORD WINAPI Send(LPVOID number)//////这里刚才写错
    {
      int w=*(int *)number;
    .......
    一查:w竟然是&&^$%^@$^@^$^@^,
    娘的,你气不气,想不想砸
      

  2.   

    你的是一个局部变量,它的地址当然最后不要作为参数在线程之间传递,另外,你传递的是地址,当然其中的值会变。你应该如下写法:
    ThreadHandle[i] = CreateThread(NULL, 0, Send, (LPVOID)i, 0, &ThreadId);int w = (int)number;肯定没有问题了
      

  3.   

    错哪儿啊,大哥,你不能吊我胃口啊,你不说不符合csdn的精神啊
      

  4.   

    for(i=0;i<N;i++)
      ThreadHandle[i]=CreateThread(NULL,0,Send,(LPVOID)&i,0,&ThreadId);
    DWORD WINAPI SendReply(LPVOID number)
    {
      int *w=(int *)number;
    }
      

  5.   

    joshua0137你错了,你仍然传递地址,i中的值在循环中会改变,应该直接传值