<?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[wird dynamischer speicher gelöscht?]]></title><description><![CDATA[<p>Moin, ich bin neu hier. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich bin gerade dabei mich mit dem dynamischen Speicher zu beschäftigen.<br />
Nun hab ich eine kurze Frage. Also ich starte mein Programm mit<br />
System(&quot;start bla.exe&quot;) neu und hab den Namen mit einem pointer von argv[0]übertragen.<br />
Meine Frage ist nur, wird danach noch der dynamische Speicher gelöscht, wenn<br />
ich es so schreibe:</p>
<pre><code>system(ptr);  
delete [] ptr;
</code></pre>
<p>Weil das Programm ja doch schon wieder neu läuft und der Rest ignoriert wird.<br />
Soweit ich mich nicht irre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/337490/wird-dynamischer-speicher-gelöscht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:23:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/337490.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Apr 2016 09:50:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 09:50:31 GMT]]></title><description><![CDATA[<p>Moin, ich bin neu hier. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich bin gerade dabei mich mit dem dynamischen Speicher zu beschäftigen.<br />
Nun hab ich eine kurze Frage. Also ich starte mein Programm mit<br />
System(&quot;start bla.exe&quot;) neu und hab den Namen mit einem pointer von argv[0]übertragen.<br />
Meine Frage ist nur, wird danach noch der dynamische Speicher gelöscht, wenn<br />
ich es so schreibe:</p>
<pre><code>system(ptr);  
delete [] ptr;
</code></pre>
<p>Weil das Programm ja doch schon wieder neu läuft und der Rest ignoriert wird.<br />
Soweit ich mich nicht irre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492434</guid><dc:creator><![CDATA[ChukkSatyriasis]]></dc:creator><pubDate>Wed, 06 Apr 2016 09:50:31 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 10:12:53 GMT]]></title><description><![CDATA[<p>Pointer != dynamischer Speicher</p>
<p>Nicht alles, was ein Zeiger ist, ist gleichzeitig ein Zeiger auf einen dynamisch allokierten Speicherbereich.</p>
<p>Du bekommst einen Zeiger auf Speicher, der vom OS reserviert wurde, da brauchst du dich nicht um die Freigabe zu kümmern. Als Faustregel gilt: Alles, was du mit malloc/new allokierst und nicht in einen SmartPointer verpackst musst du mit free/delete wieder freigeben.<br />
Wenn du von irgendwoher einen Zeiger bekommst und die API dir nicht vorschreibt, wie der abzuräumen ist, brauchst du den nicht selbst freizugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492435</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 06 Apr 2016 10:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 10:16:39 GMT]]></title><description><![CDATA[<p>Du schreibst total wirr. Musste alles 3x lesen bevor ich auch nur ne Vermutung hatte was du meinst.</p>
<p><code>system()</code> startet einen neuen Prozess.<br />
Dein alter Prozess läuft aber weiter, &quot;der Rest&quot; wird also nicht ignoriert. (Normalerweise -- <code>system()</code> ist ja schliesslich keine Standard-Funktion, und kann daher auch unterschiedlich implementiert sein. Kannst du aber auch super-einfach prüfen, du musst ja bloss mal versuchen im &quot;Rest&quot; mal nen <code>printf</code> o.Ä. zu machen.)</p>
<p>D.h. natürlich solltest du Speicher den du im alten Prozess angefordert hast auch im alten Prozess freigeben.</p>
<p>Und BTW: Speicher löscht man nicht, den gibt man frei. Objekte löscht man.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492436</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 06 Apr 2016 10:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 10:38:52 GMT]]></title><description><![CDATA[<p>DocShoe: Verzeihung, ich hätte vielleicht erwähnen sollen.Ich hab davor mit new Speicherplatz freigegeben.</p>
<p>hustbaer: Aus meiner Sicht hab ich es so gut beschrieben, wie es für mich möglich war. Das nächste mal versuche ich es besser. Ich habe dahinter ja noch befehle stehen, die ignoriert oder zumindest nicht angezeigt wurden. Ist bestimmt irgendwo mein Fehler. Es fängt einfach im gleichen Fenster vom Programmstart an. Ich merke mir das mit dem Freigeben für die Zukunft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
<p>Also vielen dank für alles an euch beide und ich lass es dann besser so stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492441</guid><dc:creator><![CDATA[ChukkSatyriasis]]></dc:creator><pubDate>Wed, 06 Apr 2016 10:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 10:59:58 GMT]]></title><description><![CDATA[<p>wenn in deinem Code</p>
<p>&quot;new&quot; dann musst du &quot;delete&quot; machen<br />
&quot;malloc&quot; ... &quot;free&quot;</p>
<p>wenn aus fremden Code z.B.</p>
<p>Standard-Library<br />
Externe-Library<br />
oder z.B. WinAPI etwas als Pointer kommt/erzeugt wird</p>
<p>ist es vollkommen davon abhängig wie der Entwickler der API es vorgibt<br />
du musst z.B. freigeben mit delete/free/spezielle Free-Routine usw., oder auch gar nicht weil der externe Code das macht</p>
<p>alle Varianten sind möglich daher kann man dir dazu keine Standard-Antwort liefern</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492444</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Wed, 06 Apr 2016 10:59:58 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 11:17:44 GMT]]></title><description><![CDATA[<p>ChukkSatyriasis schrieb:</p>
<blockquote>
<p>DocShoe: Verzeihung, ich hätte vielleicht erwähnen sollen.Ich hab davor mit new Speicherplatz freigegeben.</p>
</blockquote>
<p>Erstaunlich. Was du so alles kannst... man lernt nicht aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492446</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 06 Apr 2016 11:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Wed, 06 Apr 2016 13:00:39 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/33425">@ChukkSatyriasis</a><br />
Welche IDE verwendest du, welches OS und was für ein Anwendungstyp ist dein Programm?</p>
<p>Oder auch: Was bekommst du angezeigt wenn du den Cursor in deinem Source-Code in den Funktionsnamen &quot;system&quot; stellst und F1 drückst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492452</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 06 Apr 2016 13:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Fri, 08 Apr 2016 12:22:14 GMT]]></title><description><![CDATA[<p>hustbaer: Also meine IDE ist VC++ 2010 Express. Ich benutze Windows 10 und der Anwendungstyp ist die Konsole.<br />
und wenn ich das mit dem Courser und F1 mache, dann kommt eine Seite die mir sagt, das Thema wurde nicht gefunden.</p>
<p>Sorry, das die Antwort etwas gebraucht hat. Immer diese Realität.. huh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492662</guid><dc:creator><![CDATA[ChukkSatyriasis]]></dc:creator><pubDate>Fri, 08 Apr 2016 12:22:14 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Sat, 09 Apr 2016 01:45:04 GMT]]></title><description><![CDATA[<p>Das wäre dann diese Funktion:<br />
<a href="https://msdn.microsoft.com/en-us/library/277bwbdz.aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/277bwbdz.aspx</a></p>
<p>Der Grund für das beobachtete Verhalten wird dann sein:<br />
Die Funktion kommt erst zurück wenn das Aufgerufene Programm fertig gelaufen ist.<br />
(Also wenn man mit system() eine GUI Applikationen startet, dann wartet system() vermutlich nicht, was eine Eigenheit der Windows Konsole ist, aber da dein Programm ja eine Konsolenapplikation ist die sich selbst startet...)</p>
<p>Und was &quot;das Thema wurde nicht gefunden&quot; angeht - dann ist bei der Hilfe irgendwas gar nicht oder nicht richtig installiert. Würde ich an deiner Stelle nachhole, ist schon recht praktisch wenn man Hilfe zu allen Standard-Funktionen einfach per F1 abrufen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492733</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 09 Apr 2016 01:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Sat, 09 Apr 2016 08:01:51 GMT]]></title><description><![CDATA[<p>ChukkSatyriasis schrieb:</p>
<blockquote>
<p>Also meine IDE ist VC++ 2010 Express. Ich benutze Windows 10</p>
</blockquote>
<p>Warum? Es gibt einen aktuellen Compiler umsonst: VS2015</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492743</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 09 Apr 2016 08:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Sat, 09 Apr 2016 12:10:40 GMT]]></title><description><![CDATA[<p>hustbaer: Achso, also wenn ich das richtig verstehe, dann muss ich eigentlich nur abfragen, ob der Benutzer das Programm nochmal ausführen will, bis er sich dagegen entscheidet und dann wird der Code vom Aufruf davor weiter durchgeführt. Würde zumindest einen Sinn ergeben für mich. Aber das kann man ja ganz einfach überprüfen. Dann bin ich mal gespannt.</p>
<p>manni66: Ich hab das VC++ 2010 Express schon früher benutzt und fühl mich damit wohl. Bis jetzt fehlt es mir an nichts und ehrlich gesagt hab ich gar nicht so nach neueren Optionen geguckt. Ich werde das mal nachholen, wenn ich mit den jetzigen Projekten fertig bin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492756</guid><dc:creator><![CDATA[ChukkSatyriasis]]></dc:creator><pubDate>Sat, 09 Apr 2016 12:10:40 GMT</pubDate></item><item><title><![CDATA[Reply to wird dynamischer speicher gelöscht? on Sat, 09 Apr 2016 16:11:48 GMT]]></title><description><![CDATA[<p><code>system(command)</code> macht das selbe wie wenn du <code>command</code> in der Konsole eingeben würdest.<br />
Dabei kommt <code>system()</code> zu dem Zeitpunkt zurück wo du in der Konsole wieder die Eingabeaufforderung bekommen würdest.</p>
<p>Also das...</p>
<pre><code class="language-cpp">#include &lt;process.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main()
{
	std::cout &lt;&lt; &quot;-------- 1 --------\n&quot;;
	system(&quot;dir c:\\windows\\system32 /s &gt; d:\\dir.txt&quot;);
	std::cout &lt;&lt; &quot;-------- 2 --------\n&quot;;

	size_t count = 0;
	{
		std::ifstream file(&quot;d:\\dir.txt&quot;);
		std::string line;
		while (getline(file, line))
			if (line.find(&quot;driver&quot;) != std::string::npos)
				count++;
	}
	std::cout &lt;&lt; &quot;found &quot; &lt;&lt; count &lt;&lt; &quot; lines containing 'driver'\n&quot;;

	std::cout &lt;&lt; &quot;-------- 3 --------\n&quot;;
	system(&quot;del d:\\dir.txt&quot;);
	std::cout &lt;&lt; &quot;-------- 4 --------\n&quot;;

	return 0;
}
</code></pre>
<p>...funktioniert.<br />
(Vorausgesetzt es gibt ein d:\ Laufwerk wo du schreiben kannst etc. - ich wollte das Beispiel nicht unübersichtlich machen durch Code der sich z.B. passende Pfade zusammenbaut.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2492775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2492775</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 09 Apr 2016 16:11:48 GMT</pubDate></item></channel></rss>