#include <iostream>
using namespace std;
char* b="efg";
void set(){
/*5:*/strcpy(b,"abc");
}

void main()
{
set();
cout<<b;
getchar();
}
ビルドは通りますが、実行時AccessViolationでます。
で、その訳ですが、5行目でabcのためのアドレス確保し、abc\0が入る
&aが"abc"と同アドレスを参照しようとするが、そのとき、efgとそのアドレスを切り離す(メモリ上に残骸が残る)>AccessViolation