<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[std::basic_streambuf resource-leak]]></title><description><![CDATA[<p>hola leute</p>
<p>bau mir gerade einen socketstreambuf zusammen und hab das problem das mir der CodeGuard von Turbo C++ ein resource-leak anzeigt:</p>
<pre><code class="language-cpp">SocketStreambuf::~SocketStreambuf(void)
{
	delete[] send_buffer;
	delete[] recv_buffer;
	client.Close();
}

void SocketStreambuf::SetBufferSize(int size)
{
        if(send_buffer)
	        delete[] send_buffer;
        if(recv_buffer)
	        delete[] recv_buffer;

	send_buffer = new char[size];
	recv_buffer = new char[size];
	buffer_size = size;

	setp(send_buffer, send_buffer, send_buffer + buffer_size);
	setg(recv_buffer, recv_buffer + buffer_size, recv_buffer + buffer_size);
}
</code></pre>
<p>in der methode SetBufferSize sind meine einzigen new's vorhanden. trotzdem heisst es das die beiden buffer nicht geloescht werden wuerden.<br />
was koennte daran schuld sein ?<br />
SetBufferSize wird von jedem konstruktor aufgerufen und der wert ist immer 0x400.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218870/std-basic_streambuf-resource-leak</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 18:24:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218870.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 26 Jul 2008 16:28:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::basic_streambuf resource-leak on Sat, 26 Jul 2008 16:28:14 GMT]]></title><description><![CDATA[<p>hola leute</p>
<p>bau mir gerade einen socketstreambuf zusammen und hab das problem das mir der CodeGuard von Turbo C++ ein resource-leak anzeigt:</p>
<pre><code class="language-cpp">SocketStreambuf::~SocketStreambuf(void)
{
	delete[] send_buffer;
	delete[] recv_buffer;
	client.Close();
}

void SocketStreambuf::SetBufferSize(int size)
{
        if(send_buffer)
	        delete[] send_buffer;
        if(recv_buffer)
	        delete[] recv_buffer;

	send_buffer = new char[size];
	recv_buffer = new char[size];
	buffer_size = size;

	setp(send_buffer, send_buffer, send_buffer + buffer_size);
	setg(recv_buffer, recv_buffer + buffer_size, recv_buffer + buffer_size);
}
</code></pre>
<p>in der methode SetBufferSize sind meine einzigen new's vorhanden. trotzdem heisst es das die beiden buffer nicht geloescht werden wuerden.<br />
was koennte daran schuld sein ?<br />
SetBufferSize wird von jedem konstruktor aufgerufen und der wert ist immer 0x400.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554073</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 26 Jul 2008 16:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to std::basic_streambuf resource-leak on Sat, 26 Jul 2008 16:31:16 GMT]]></title><description><![CDATA[<p>Hmm. Wird irgendwo mal was kopiert und nicht freigegeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554074</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 26 Jul 2008 16:31:16 GMT</pubDate></item><item><title><![CDATA[Reply to std::basic_streambuf resource-leak on Sat, 26 Jul 2008 18:25:49 GMT]]></title><description><![CDATA[<p>noe gar nicht.<br />
wird immer nor in den buffern geschrieben und ausgelesen. sonst nix.<br />
muss aber was vorhanden sein, weil im task manager seh ich das meine app immer mehr speicher verbraucht.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554143</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 26 Jul 2008 18:25:49 GMT</pubDate></item></channel></rss>