<?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[Problem mit std::cin und delete]]></title><description><![CDATA[<p>Ich habe ein Problem mit std::cin. Wenn ich den code solo in main() unterbringe, funktioniert er wie erwartet. Wenn ich ihn in ein anderes Program einfüger, wirds anstandslos kompeliert, führt aber zu einem &quot;segmentation fault&quot;, wenn die Eingabe nicht leer ist.</p>
<p>Was funktioniert:</p>
<pre><code>#include &lt;iostream&gt;
int main(int argc, char** argv) {
  //der in einem anderen programm problematische code:
  char* tmp;
  std::cin &gt;&gt; tmp;
return 0;}
</code></pre>
<p>Vll. damit zusammenhängend: Ich habe ein dynamisches Objekt und kurz vor programm-ende einen delete-aufruf. Weil danach nur noch ein return aus main stattfindet, das Objekt also ganz sicher nicht vorher wo anders gelöscht wird, scheidet der Fehler &quot;doppeltes delete&quot; und &quot;zugriff auf gelöschtes Objekt&quot; aus.</p>
<p>Was für weitere Fehler-Quellen fallen euch ein? Wie kann obenstehender code durch einen vorherigen Fehler (Es sei denn das prog ist ohne Fehler falsch?) beeinträchtigt werden. Zum posten des gesamten codes scheint mir der code zu umfangreich.</p>
<p>Irgendwelche Ideen?<br />
mfg -gorgoyle</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174578/problem-mit-std-cin-und-delete</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 18:28:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174578.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Feb 2007 18:04:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:05:35 GMT]]></title><description><![CDATA[<p>Ich habe ein Problem mit std::cin. Wenn ich den code solo in main() unterbringe, funktioniert er wie erwartet. Wenn ich ihn in ein anderes Program einfüger, wirds anstandslos kompeliert, führt aber zu einem &quot;segmentation fault&quot;, wenn die Eingabe nicht leer ist.</p>
<p>Was funktioniert:</p>
<pre><code>#include &lt;iostream&gt;
int main(int argc, char** argv) {
  //der in einem anderen programm problematische code:
  char* tmp;
  std::cin &gt;&gt; tmp;
return 0;}
</code></pre>
<p>Vll. damit zusammenhängend: Ich habe ein dynamisches Objekt und kurz vor programm-ende einen delete-aufruf. Weil danach nur noch ein return aus main stattfindet, das Objekt also ganz sicher nicht vorher wo anders gelöscht wird, scheidet der Fehler &quot;doppeltes delete&quot; und &quot;zugriff auf gelöschtes Objekt&quot; aus.</p>
<p>Was für weitere Fehler-Quellen fallen euch ein? Wie kann obenstehender code durch einen vorherigen Fehler (Es sei denn das prog ist ohne Fehler falsch?) beeinträchtigt werden. Zum posten des gesamten codes scheint mir der code zu umfangreich.</p>
<p>Irgendwelche Ideen?<br />
mfg -gorgoyle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236978</guid><dc:creator><![CDATA[gorgoyle]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:09:39 GMT]]></title><description><![CDATA[<p>Wahrscheinlichste Fehlerquelle: Du hast keinen Speicher für tmp allokiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236981</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:09:41 GMT]]></title><description><![CDATA[<p>Glückwunsch, dein Zeiger zeigt ins Nirvana.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236982</guid><dc:creator><![CDATA[Entenwickler wieder da]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:15:20 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt;

int main(int argc, char** argv) { 
  //der in einem anderen programm problematische code: 
  std::string tmp; 
  std::cin &gt;&gt; tmp; 
return 0;}
</code></pre>
<p>dann hast du die zeiger problemeatik nicht (und der wurde bei dir nie initialisiert, zumindest zeigt er sonst wohin, aber auf kein gültiges objekt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236988</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:44:59 GMT]]></title><description><![CDATA[<p>(1)</p>
<pre><code>char* tmp = &quot;    &quot;;
</code></pre>
<p>funzt net ..<br />
(2)</p>
<pre><code>char* tmp = char[4];
</code></pre>
<p>funzt!</p>
<p>Gibt es eine kurze Erklärung dafür, warum (1) nicht funktioniert?<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15647">@Muffmolch</a> Das beantwortet wohl die Frage, wie man wirkungsvoll Pufferüberläufe verhindern kann oder irre ich mich?</p>
<p>Danke für eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1237006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237006</guid><dc:creator><![CDATA[gorgoyle]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:44:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit std::cin und delete on Wed, 28 Feb 2007 18:53:16 GMT]]></title><description><![CDATA[<p>eigentlich sollte 2 auch so nicht gemacht werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Naja ... du musst halt einen groß genuchen Speicher allokieren ... was eigentlich mit new gemacht wird ... und den am Ende wieder mit delete freigeben ... das macht die std::string klasse alles für dich und noch vieles mehr ...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

int main() 
{
    std::cout &lt;&lt; &quot;Test V1.0&quot; &lt;&lt; std::endl;
    std::string test;
    std::getline(std::cin, test); // Da holen wir uns sogar die ganze Zeile ;)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1237012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1237012</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 28 Feb 2007 18:53:16 GMT</pubDate></item></channel></rss>