首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

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

2011-12-08 
VC2005中wchar_t[i]的值怎么改变wchar_t*wcL ABCDE wc[3] d 么就说wc[3] d 出错,尝试读取或写入受

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*
改写了常量存储区域当然不可以了

热点排行