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

Is memcpy() safe when copy some content larger than dst?

本文关键字:memcpy 安全 是否 复制 大于 dst      更新时间:2023-10-16

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

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