当复制一些大于dst的内容时,memcpy()是否安全



request_token.size()大于LEN时安全吗?

char dst[LEN];
memcpy(dst, request_token.c_str(), request_token.size());

不,它不安全;你会造成缓冲区溢出。原因是,除了在第三个参数中传递的大小之外,memcpy无法知道目标缓冲区的大小。

不,肯定不会,这会导致缓冲区溢出并触发未定义的行为,这将导致各种糟糕的事情,包括但不限于数据损坏和程序崩溃。

不,它不安全。阅读以下内容:http://msdn.microsoft.com/en-us/library/dswaw1wk(VS.80).aspx

使用memcpy_s():http://msdn.microsoft.com/en-us/library/dswaw1wk(VS.80).aspx

否,您最终将尝试写入无效的内存位置,从而导致未定义的行为。

最新更新