[问题] 无法利用全域变量来控制server丢资料

楼主: airawesu   2016-12-07 22:36:34
开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
visual studio2015
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
server利用while(1)无限循环client丢回来的值来判断要丢什么东西回去
此外我也叫了另一个thread来写入全域变量a
在while(1)里面加入if a>1的判断来控制要不要丢a的值给client
但是发现那个if判断似乎完全没有执行
因为我有用cout来做是否有做到该程序的判断
不过连cout都没有做
喂入的资料(Input):
thread thread1(keyin);
void keyin()
{
while (1)
{
cout << "please key in value of a:";
cin >> a;
cout << "value of a is " << a << "\n";
Sleep(5000);
}
}
if (*ptr >= 1)
{
strcpy(sendData, "a的值是 ");
char buffer[1];
sprintf(buffer, "%d", a);
strcat_s(sendData, buffer);
strcat_s(sendData, " 的唷\n");
send(current_client, sendData, sizeof(sendData), 0);
cout << sendData << "\n";
printf("\n我做完了发送a的值的流程\n");
cleanBuf();
cleanSendData();
}
预期的正确结果(Expected Output):
将if (*ptr >= 1)该做的程序完全做完
错误结果(Wrong Output):
没执行
程式码(Code):(请善用置底文网页, 记得排版)
http://ideone.com/ytAAcP
补充说明(Supplement):
大学学完C++后完全彻底的荒废两年 才重新自学
请鞭小力
作者: stupid0319 (征女友)   2016-12-07 22:40:00
跟上一个贴文是同一个作业吗?
楼主: airawesu   2016-12-07 22:41:00
从上一个程式码后已经是大改造了..指标 class之类的都有
作者: fatrabitree (胖兔子)   2016-12-07 22:41:00
先猜volatile
作者: o07608 (无良记者)   2016-12-07 22:42:00
不同
作者: firejox (Tangent)   2016-12-07 23:04:00
volatile 有可能

Links booklink

Contact Us: admin [ a t ] ucptt.com