c++ 局部变量A为什么不能给局部变量B接收 求修改

#include<Windows.h>#include<iostream>DWORDWINAPIThread(LPVOIDlpParmeter);HANDLEg_hMut... #include <Windows.h>
#include <iostream>

DWORD WINAPI Thread(LPVOID lpParmeter);
HANDLE g_hMutex;

int main()
{
static int u = 3 , i = 0;
static int b = 5 , a = 0;//在这里定义了变量
HANDLE* hThread = new HANDLE[u];
for(;i<u; i++)
{
g_hMutex=CreateMutex(NULL,FALSE,"MutexToRecive");
hThread[i]=CreateThread(NULL,0,Thread,&i,0,NULL);
Sleep(50);
}
SetEvent(g_hMutex);
WaitForMultipleObjects(i, hThread, TRUE, INFINITE);
for (; i<u; i++)
CloseHandle(hThread[i]);
return 0;
}

DWORD WINAPI Thread(LPVOID lpParmeter)
{ int idx = *(int*)lpParmeter;
for(;a<b;a++)//接收不到
{
WaitForSingleObject(g_hMutex, INFINITE);
if (a < b)//这里也是
{
Sleep(25);
printf("线程%d %d\n",idx,a);
ReleaseMutex(g_hMutex);
}
else
{
ReleaseMutex(g_hMutex);
break;
}
}
return 0;
}
展开
 我来答
TrustLove520
2012-09-07 · 超过23用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:58.8万
展开全部
g_hMutex=CreateMutex(NULL,FALSE,"MutexToRecive");这句话不能使循环的,因为名字重复,第二次建立就会失败
匿名用户
2012-09-07
展开全部
static int b = 5 , a = 0;//在这里定义了变量
菜鸟认为是静态变量的问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阶昂赣糙珊郎C2
2012-09-07 · TA获得超过305个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:96.1万
展开全部
c++最基础的东西都没学好,还搞多线程~~牛人~~
追问
= = 有什么办法? 别跟我说改为全局变量这个我也知道
如果你牛人 那么你请告诉我怎么办 菜鸟请教了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
源叶孤飞74
2012-09-07
知道答主
回答量:11
采纳率:0%
帮助的人:4.2万
展开全部
把变量弄成全局变量!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式