描述:由于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的值由 $ 替换成了 #