<?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[Mein Programm hängt]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>Ich habe einen einfache Stack Klasse programmiert, aber irgendwie hängt mein Programm und es passiert einfach nichts. Kann mir Jemand sagen, was ich falsch mache? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

template &lt;class T&gt;
class Stack {
	T *arr;
	int ptr;
	int size;
public:
	class Stack_voll{};
	class Stack_leer{};

	Stack(int n) : ptr(0), size(n), arr(new T[size]) {}
	~Stack() { delete[] arr; }

	void push(const T&amp; e) {
		if(ptr &gt;= size)
			throw Stack_voll();
		arr[ptr++] = e;
	}

	T&amp; pop() {
		if(ptr == 0)
			throw Stack_leer();
		ptr--;
		return arr[ptr];
	}
};

int main(int argc, char* argv[])
{
	Stack&lt;int&gt; st(10);

	int i = 1;
	while(true) {
		try {
			st.push(i++);
		} catch( Stack&lt;int&gt;::Stack_voll ) {
			break;
		}
	}

	while(true) {
		try {
			i = st.pop();
		} catch( Stack&lt;int&gt;::Stack_leer ) {
			break;
		}
		cout &lt;&lt; i &lt;&lt; endl;
	}
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/244848/mein-programm-hängt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 04:00:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244848.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Jul 2009 17:04:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:04:44 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>Ich habe einen einfache Stack Klasse programmiert, aber irgendwie hängt mein Programm und es passiert einfach nichts. Kann mir Jemand sagen, was ich falsch mache? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

template &lt;class T&gt;
class Stack {
	T *arr;
	int ptr;
	int size;
public:
	class Stack_voll{};
	class Stack_leer{};

	Stack(int n) : ptr(0), size(n), arr(new T[size]) {}
	~Stack() { delete[] arr; }

	void push(const T&amp; e) {
		if(ptr &gt;= size)
			throw Stack_voll();
		arr[ptr++] = e;
	}

	T&amp; pop() {
		if(ptr == 0)
			throw Stack_leer();
		ptr--;
		return arr[ptr];
	}
};

int main(int argc, char* argv[])
{
	Stack&lt;int&gt; st(10);

	int i = 1;
	while(true) {
		try {
			st.push(i++);
		} catch( Stack&lt;int&gt;::Stack_voll ) {
			break;
		}
	}

	while(true) {
		try {
			i = st.pop();
		} catch( Stack&lt;int&gt;::Stack_leer ) {
			break;
		}
		cout &lt;&lt; i &lt;&lt; endl;
	}
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1738078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738078</guid><dc:creator><![CDATA[Gabbit]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:17:10 GMT]]></title><description><![CDATA[<p>Vielleicht kannst du kein break in try-catch verwenden ... Wenn du while weglasst, wird dann eine Exception geworfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738084</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:17:19 GMT]]></title><description><![CDATA[<p>Der Code funktioniert bei mir einwandfrei.</p>
<p>Kannst du die Fehlerbeschreibung ein wenig verbessern? Was heisst, dass das Programm hängt?<br />
Es hat nichts mit dem hier zu tun?<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html</a></p>
<p>Was ist dein Kompiler? Was verwendest du für eine Standardbibliothek? Schon mal mit dem Debugger durchgelaufen?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738089</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:20:34 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Vielleicht kannst du kein break in try-catch verwenden ... Wenn du while weglasst, wird dann eine Exception geworfen?</p>
</blockquote>
<p>Hm dann ist es immer noch genau das gleiche...</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Der Code funktioniert bei mir einwandfrei.</p>
<p>Kannst du die Fehlerbeschreibung ein wenig verbessern? Was heisst, dass das Programm hängt?<br />
Es hat nichts mit dem hier zu tun?<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html</a></p>
<p>Was ist dein Kompiler? Was verwendest du für eine Standardbibliothek? Schon mal mit dem Debugger durchgelaufen?</p>
<p>Grüssli</p>
</blockquote>
<p>Naja in der Konsole wird nichts ausgegeben und es passiert gar nichts...wie als ob man eine Endlos Schleife programmiert...</p>
<p>Mein Kompiler ist Visual Studio 2008 Express Edition, aber was für eine Standardbibliothek ich verwende weiss ich leider nicht. Mit dem Debugger kenne ich mich leider auch nicht aus, sorry ich bin noch ein Anfänger..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738093</guid><dc:creator><![CDATA[Gabbit]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:32:01 GMT]]></title><description><![CDATA[<p>Sicher Dravere?</p>
<p>Wir hatten das Thema erst vor kurzem, warum es nicht gehen sollte ^^</p>
<pre><code class="language-cpp">T *arr; 
    int ptr; 
    int size;
</code></pre>
<pre><code class="language-cpp">Stack(int n) : ptr(0), size(n), arr(new T[size]) {}
</code></pre>
<p>so sollte es gehen:</p>
<pre><code class="language-cpp">int ptr; 
    int size; 
    T *arr;
</code></pre>
<p>zumindest bei mir ^^<br />
msvc sollte(könnte) sagen &quot;invalid allocation size&quot; oder so was in der richtung ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738100</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:40:47 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Sicher Dravere?</p>
</blockquote>
<p>Kompiliert mit VS2008 Team Suite Release Build, hat einwandfrei geklappt. <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="😉"
    /><br />
War zu faul, den ganzen Code genauer anzuschauen.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>... so sollte es gehen ...</p>
</blockquote>
<p>Oder noch einfacher:<br />
<code>Stack(int n) : ptr(0), size(n), arr(new T[n]) {}</code></p>
<p>Aber ob das wirklich das Problem ist? Naja, Gabbit wird es uns sagen <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738103</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:44:28 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>in der Tat nun funktioniert es auf einmal!! aber wieso muss ich die Reihenfolge der Classmember ändern, was macht das für einen Unterschied? puh davon steht auch nichts in meinem C++ Buch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738105</guid><dc:creator><![CDATA[Gabbit]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:44:28 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:47:15 GMT]]></title><description><![CDATA[<p>Gabbit schrieb:</p>
<blockquote>
<p>in der Tat nun funktioniert es auf einmal!! aber wieso muss ich die Reihenfolge der Classmember ändern, was macht das für einen Unterschied? puh davon steht auch nichts in meinem C++ Buch...</p>
</blockquote>
<p>Weil die Reihenfolge der Initialisierung der Reihenfolge der Deklaration im gleichen Sichtbarkeitsblock ( <code>public</code> , <code>protected</code> , <code>private</code> ) entspricht. Somit hast du <code>size</code> verwendet, bevor es überhaupt initialisiert war und dadurch ist undefiniertes Verhalten entstanden.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738108</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Mein Programm hängt on Mon, 06 Jul 2009 17:51:11 GMT]]></title><description><![CDATA[<p>hm Ok danke,</p>
<p>oh man gibts noch mehr solcher tückischen falltüren auf die man achten muss? ich hab eine halbe stunde lang geschaut ob in meinen while schleifen der fehler liegt, dabei hatte das gar nix damit zu tun..aber wieso warnt der Kompiler mich denn da nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1738110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1738110</guid><dc:creator><![CDATA[Gabbit]]></dc:creator><pubDate>Mon, 06 Jul 2009 17:51:11 GMT</pubDate></item></channel></rss>