我正在努力寻找答案:
#define BUFLEN 8
unsigned short randombuffer[BUFLEN];
memset(randombuffer, 200 , BUFLEN );
printf("%u", randombuffer[0]);
我得到的答案是51400,尽管我希望是200。
调试后,我发现
randombuffer
的前8个条目充满了0xC8。因此0xC8C8是51400。但是我期望数组中的每个索引都为0x00C8。我究竟做错了什么?
最佳答案
memset
填充字节,但是看起来您想填充单词。我不知道是否为此内置了类似memset
的函数,因此您可能不得不重复执行memset
/ memcpy
。请注意,如果您舒适地编写内联汇编程序,则可以自己在机器代码中高效地完成此操作-尽管在C中使用指针的紧密循环可能快得差不多。
关于c - memset按字节而不是整数(4个字节),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33694259/