⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_18110.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:18110 发表者:桑夏 发表日期:2002-10-18 00:01:42
<br>主题:[求助]
<br>内容:在visual c++ 6.0 中我有以下程序:<BR>[pre]<BR>int main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;char *str="ok";<BR>&nbsp;&nbsp;&nbsp;&nbsp;*(str+1)=‘o’;&nbsp;&nbsp;//企图是str 变为"oo"<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>[/pre]<BR><BR>不出现编译时错误,但运行时会出现<BR><BR>Unhandled exception in *.exe 0xC0000005:Access Violation<BR><BR>如果将char *str改为char str[3],则不会出现运行时错误。<BR>但是这种情况在Turboc2.0中不会发生。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:^_^ 回复日期:2002-10-18 08:51:14
<br>内容:[pre]是什么?没听说过<BR><BR>int main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;char *str="ok"; //不可以这样定义,这相当于一个常量指针,不能修改<BR>// 所以说你改成 str[] or str[3]等都没有问题<BR>&nbsp;&nbsp;&nbsp;&nbsp;*(str+1)='o';&nbsp;&nbsp;//企图是str 变为"oo"<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-10-18 09:18:59
<br>内容:char *str="ok";<BR>你的“ok"是一个常量字符串,里面的东西是不可以修改的<BR>而你定义的str指针指向了该常量串<BR>*(str+1)='o'你企图利用str指针去修改一个不能被修改的<BR>常量字符串<BR>所以就出现了访问非法的错误
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:桑夏 回复日期:2002-10-18 11:03:18
<br>内容:多谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -