📄 subject_32292.htm
字号:
<p>
序号:32292 发表者:meneter 发表日期:2003-03-11 11:58:20
<br>主题:删除指针变量后,指针变量的值是什么?
<br>内容:CSocket* aa;<BR>aa = new CSocket();<BR>delete aa;<BR>if (aa == NULL) AfxMessageBox("Socket object was deleted!");<BR><BR>上面这段代码执行结果并没有显示提示信息,是为什么?delete一个指针变量后不是NULL值,会是什么呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:疯子 回复日期:2003-03-11 12:06:32
<br>内容:delete后指针的值是随机的。
<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-03-11 12:14:39
<br>内容:delete要与new配套使用,<BR>你把CSocket * a;改成 CSocket * a =new CSocket;试试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ax 回复日期:2003-03-11 12:20:00
<br>内容:CSocket* aa;<BR>aa = new CSocket();<BR>delete aa;<BR>aa = NULL;
<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-03-11 12:34:39
<br>内容:Right,一般地,指针被delete以后,要赋值NULL。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:(zl剑客) 回复日期:2003-03-11 12:49:08
<br>内容:你delete aa;只是把CSocket对象aa删除了(删除了指针指向的内容,并不是将指针删除了!)。<BR>也就是 aa指针指向的不在是一个CSocket对象了,<BR>但是要看到aa的值并不为NULL,它是一个实在的值。<BR>只是如果您想继续引用这个指针值时,可能发生的情况<BR>就不得而知了,因为很有可能重新为这个指针处分配别的值了<BR>所以此时再使用这个指针就非常危险了。<BR>这就是为什么要 delete aa;<BR> aa = NULL;<BR>的缘故了!!!然而删除一个空指针是安全的。(delete NULL;)
<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-03-11 12:56:31
<br>内容:一般的为了确定对象确实建立成功使用如下格式:<BR>CSocket* aa = NULL;<BR><BR>aa = new CSocket();<BR>if( NULL == aa) AfxMessageBox("Create a socket object failed!");<BR>else {<BR> delete aa;<BR> aa = NULL;<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>
回复者:meneter 回复日期:2003-03-11 15:23:51
<br>内容:如果我删除对象后没有置指针为NULL,那么我怎样知道对象已经被删除了呢?<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-03-13 12:31:20
<br>内容:这个就是系统的工作了<BR>如果调用delete Object;<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 + -