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

📄 subject_16058.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:16058 发表者:天花乱追 发表日期:2002-09-25 11:18:29
<br>主题:这样的内存泄漏如何消除?
<br>内容:NODE *build(int a[],int low,int high)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;NODE* p;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int mid;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(low&gt;high) return NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;mid=(high+low)/2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;p=(NODE *)malloc(sizeof(NODE));<BR>&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;val=a[mid];<BR>&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;lchild=build(a,low,mid-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;rchild=build(a,mid+1,high);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return p;<BR>}<BR><BR>正常说来,应该用free(p),但是加在哪里好呢(在c里面)?我需要用p做返回值啊!(是不是太有点吹毛求疵乐,西西:)
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-09-25 11:30:04
<br>内容:从哪里最后一次用完了,就free<BR><BR>如果你这样调用 NODE* ppp = build(.....);<BR>p-&gt;.............<BR><BR>用完了,<BR>就free(ppp);<BR><BR>OK?
<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-09-25 11:34:58
<br>内容:可是return前不行,后面有执行不到啊?主程序里又没有定义
<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-09-25 11:36:29
<br>内容:定义一个结构体变量<BR>NODE n;<BR>n=*p;<BR>free(p);<BR>return n;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:TopLevel 回复日期:2002-09-25 11:37:30
<br>内容:函数调用完之后,此数据不用了。<BR>即可释放。<BR>你前面定义指针时要进行初始化。<BR><BR>FreeMem(NODE* p)<BR>{<BR>&nbsp;&nbsp;if ( p )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; if ( p-&gt;lchild == NULL && p-&gt;rchild == NULL )<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;free( p );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; if ( p-&gt;lchild )<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreeMem( p-&gt;lchild );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;lchild&nbsp;&nbsp; = NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; if ( p-&gt;rchild )<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreeMem( p-&gt;rchild );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;rchild&nbsp;&nbsp;= NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;return;<BR>}<BR>2002-9-25 11:38:34

⌨️ 快捷键说明

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