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

📄 subject_39186.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:39186 发表者:骁霄笑 发表日期:2003-05-08 20:15:23
<br>主题:why?
<br>内容:#include&lt;iostream.h&gt;<BR>#include&lt;string&gt;<BR>void main()<BR>{<BR> char *a=new char[4];<BR> cout&lt;&lt;strlen(a)&lt;&lt;endl;<BR>}<BR>结果是9,why?
<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>回复者:theta 回复日期:2003-05-08 20:42:00
<br>内容:strlen(a)实际上是找到字符串结束标记'\0'为止,而a只是分配了4字节内存,并没有明确初始化,因此输出可能随机的。结果是9,是一种巧合。不同情况运行,结果可能不同。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:shabby 回复日期:2003-05-08 22:49:53
<br>内容:在VC++中,字符开辟2个字节,所以是8,再加上0一个,是9。<BR>有问题,可以给我email。<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>
回复者:BB头 回复日期:2003-05-09 01:06:09
<br>内容:我认为并不是这样,这调试时把char *a=new char[4];中的char[X]<BR>(注0&lt;=X&lt;=4)结果仍为9;请高手多加指教。<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>
回复者:罗兹维尔 回复日期:2003-05-09 08:39:00
<br>内容:这只能去问编译器了<BR>和new在堆中开辟内存的机制有关
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:骁霄笑 回复日期:2003-05-15 11:44:46
<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>
回复者:(zl剑客) 回复日期:2003-05-15 14:53:58
<br>内容:是因为char *a=new char[4];<BR>这内存块中并没有初始化或赋值,所以求出的其中字符的个数是一个错误的值!<BR><BR>改为这样就可以看出为什么了:<BR>char *a=new char[4];<BR><BR>strcpy(a,"wow");<BR>cout&lt;&lt;strlen(a)&lt;&lt;endl; // strlen(a) == 3<BR><BR>delete a;<BR><BR><BR><BR>2003-5-15 14:57:02

⌨️ 快捷键说明

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