memcopy引起的其他变量值突然改变

来源:互联网 发布:哪个网游有mac版 编辑:程序博客网 时间:2024/05/01 02:24

描述:由于error变量声明时紧跟des[5],当des被赋值并发生越界时,可能会改变error变量的值。

#include <iostream>#include <string.h>using namespace std;int main(){    char des[5] = "abcd";    char error = '$';    char src[50] = "1234567890ab#defghijklmnopqrstuvwxyz";    cout << "des:" << des << endl;    memcpy(des + 3 , src , 20);    cout <<"des:" << des << endl;    cout <<"error:" << error << endl;    return 0;}

结果:
des:abcd
error:$
des:abc1234567890ab#defghij
error:#

//变量error的值由 $ 替换成了 #

0 0
原创粉丝点击