memcpy()函数即将禁用

来源:互联网 发布:服装杂志 知乎 编辑:程序博客网 时间:2024/05/21 09:45

  微软开始建议禁用memcpy函数了,原因是因为该函数和strcpy、strncpy等函数一样,因为存在潜在的缓冲区溢出的风险。推荐使用的代替的函数是

memcpy_s(),在VC++ 2008的签名如下:

errno_t __cdecl
memcpy_s(
_Out_opt_bytecap_post_bytecount_(_DstSize, _MaxCount)
void * _Dst,
_In_ rsize_t _DstSize,
_In_opt_bytecount_(_MaxCount) const void * _Src,
_In_ rsize_t _MaxCount
);

在某人可能设定比实际分配更大的代码空间的时候,memcpy_s()没有memcpy()那样的安全弱点,所以不容易出错。
参见:http://www.infoq.com/cn/news/2009/05/memcpy-banned
	
				
		
原创粉丝点击