我在VC2008中編譯時遇到了個問題:
char * pStr = "字符串";
在使用 strcpy_s(pStr, strlen(pStr), "新串");
會報錯:讀取內存錯誤
解決辦法如下:
char pStr[] = "字符串";
strcpy_s(pStr, strlen(pStr), "新串");
將pStr聲明成數組,就沒有問題了。
分析原因,可能是VC對數組和指針的處理不同,
指針檢查更爲嚴格,可能是怕指針被重置後造成內存泄露。
這只是我猜的原因,如有誰發現了真正原因,麻煩你回覆我,謝謝。