char* pStr和char pStr[]有所不同

我在VC2008中编译时遇到了个问题:

char * pStr = "字符串";

在使用 strcpy_s(pStr, strlen(pStr),  "新串");

会报错:读取内存错误

解决办法如下:

char pStr[] = "字符串";

strcpy_s(pStr, strlen(pStr), "新串");

将pStr声明成数组,就没有问题了。

分析原因,可能是VC对数组和指针的处理不同,

指针检查更为严格,可能是怕指针被重置后造成内存泄露。

这只是我猜的原因,如有谁发现了真正原因,麻烦你回复我,谢谢。

你可能感兴趣的:(char* pStr和char pStr[]有所不同)