我在VC2008中编译时遇到了个问题:
char * pStr = "字符串";
在使用 strcpy_s(pStr, strlen(pStr), "新串");
会报错:读取内存错误
解决办法如下:
char pStr[] = "字符串";
strcpy_s(pStr, strlen(pStr), "新串");
将pStr声明成数组,就没有问题了。
分析原因,可能是VC对数组和指针的处理不同,
指针检查更为严格,可能是怕指针被重置后造成内存泄露。
这只是我猜的原因,如有谁发现了真正原因,麻烦你回复我,谢谢。