小编Hoc*_*ock的帖子

memcpy将ff ff ff添加到一个字节的开头

我有一个这样的数组:

unsigned char array[] = {'\xc0', '\x3f', '\x0e', '\x54', '\xe5', '\x20'};
unsigned char array2[6];
Run Code Online (Sandbox Code Playgroud)

当我使用memcpy时:

memcpy(array2, array, 6);
Run Code Online (Sandbox Code Playgroud)

并打印它们:

printf("%x %x %x %x %x %x", array[0],  // ... etc
printf("%x %x %x %x %x %x", array2[0], // ... etc
Run Code Online (Sandbox Code Playgroud)

一个打印像:

c0 3f e 54 e5 20
Run Code Online (Sandbox Code Playgroud)

但另一个打印

ffffffc0 3f e 54 ffffffe5 20
Run Code Online (Sandbox Code Playgroud)

发生了什么?

c++ memcpy

7
推荐指数
2
解决办法
1751
查看次数

空循环而不循环检查条件

在一个多线程的C++程序中,我在一个线程中运行相当于这个:

while(obj->member) { } // waiting for obj->member to be set to false in another thread
Run Code Online (Sandbox Code Playgroud)

在另一个线程中,obj-> member设置为false.但是,即使将其设置为false,循环也不会中断.如果我改成它:

while(obj->member) { Sleep(1) }
Run Code Online (Sandbox Code Playgroud)

当obj-> member在另一个线程中设置为false时,它按预期工作并中断.
它为什么这样工作?

c++ multithreading sleep while-loop conditional-statements

5
推荐指数
2
解决办法
2315
查看次数