坑爹的MSDN

zhangwuji156 2012-03-21 12:34:00
MSDN上对这个函数的写法是
void *memset(
void *dest,
int c,
size_t count
);
第二个参数是int!

int a[3]={1,2,3};
memset(a, 256, 1);
大家测试一下结果是什么?

结果a[0]是0啊,说明它只支持1字节的数啊

...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangwuji156 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaohuh421 的回复:]

memset本来就是按字符填充的,

Sets buffers to a specified character,注意最后一个单词"character".
所以楼主是没有仔细看MSDN吧.
[/Quote]看的很仔细呀,早就看见了,只是它参数写了个int我以为可以用int嘛
zhangwuji156 2012-03-21
  • 打赏
  • 举报
回复
时间长了忘了,查了半天没查出来左边是高位还是右边是高位,还是看了一下HIWORD的实现,明白了。
xiaohuh421 2012-03-21
  • 打赏
  • 举报
回复
memset本来就是按字符填充的,

Sets buffers to a specified character,注意最后一个单词"character".
所以楼主是没有仔细看MSDN吧.
nice_cxf 2012-03-21
  • 打赏
  • 举报
回复
这跟msdn有什么关系啊?你自己到.h找memset的定义如果不符这才是msdn的问题
vs2008 memory.h里面定义如下:
void * __cdecl memset(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_ int _Val, _In_ size_t _Size);
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
http://www.cplusplus.com/reference/clibrary/cstring/memset/
bluewanderer 2012-03-21
  • 打赏
  • 举报
回复
是int但是只取低8位啊...
Lactoferrin 2012-03-21
  • 打赏
  • 举报
回复
c运行库一般都这样,char作为参数或返回值时都用int

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧