当前位置: 代码迷 >> VC >> 么就说wc[3]= 'd ';出错,尝试读取或写入受保护的内存。
  详细解决方案

么就说wc[3]= 'd ';出错,尝试读取或写入受保护的内存。

热度:2542   发布时间:2013-02-25 00:00:00.0
VC2005中wchar_t[i]的值怎么改变
wchar_t   *wc=L "ABCDE ";
wc[3]= 'd ';


么就说wc[3]= 'd ';出错,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。


请高手帮个忙

------解决方案--------------------------------------------------------
wchar_t wc1[] = L "ABCDE ";
wchar_t *wc=wc1;
wc[3]= 'd ';

你那样声明的字符串被放到常量数据区,所以是不能修改的。
------解决方案--------------------------------------------------------
wchar_t *wc=L "ABCDE ";
进行了一个隐式的转换const wchar_t*到wchar_t*
改写了常量存储区域当然不可以了
  相关解决方案