<?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[Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin erst seit kurzem dabei ein wenig c++ zu programmieren. Eigentlich sollte es ein recht simples Porgramm werden mit dem ich Durchmesser einlese und den Größten Durchmesser ausgeben kann. Leider sind fehler aufgetreten die ich persönlich nicht korrigiert bekomme. Hoffe jemand kann mir schnell helfen.</p>
<p>Er führt das Progamm zwar aus aber mit den Fehlern:</p>
<p>- n sei nicht initalisierte lokale variable (habe sie doch aber initailiesiert)<br />
- max sei nicht initaliesiert ....... (auch eigentlich initaliesiert)</p>
<p>Mein Quelltext wie folgt:</p>
<pre><code class="language-cpp">#include &lt;conio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;

using namespace std;
#define nmax 100 
#define pi 3.1415926

int lies(int n, double d[])
{  
		 n=0;							
		do{	cout&lt;&lt;&quot;\n Durchmesser des &quot;&lt;&lt;n+1&lt;&lt;&quot;. Elementes (Ende bei &lt;=0):&quot;;
		cin&gt;&gt;d[n];
		if(d[n]&lt;=0) break;
		n++;
		}while(n&lt;nmax);
	return n;		
}
double maximum(int i ,double d[nmax])
{  
	double max;
	for(i=0;i&lt;=nmax;i++){
		if (d[i]&gt;max)
			max = d[i];
						}
	return max;
		cout&lt;&lt; &quot;\n Der maximale Durchmesser beträgt&quot;&lt;&lt;max&lt;&lt;endl;
		cout&lt;&lt; &quot;\n Das maximale Volumen beträgt : &quot;&lt;&lt;pi/6*max*max*max&lt;&lt; endl;

}
int main()
{   char men ;	int n; double a[nmax] ;
	do
	{	cout&lt;&lt;&quot;--Startmenue--&quot;&lt;&lt;endl;
		cout&lt;&lt;&quot;\n (1) - Durchmesser eingeben&quot;&lt;&lt;endl;
		cout&lt;&lt; &quot;\n (2) - Größter Durchmesser und Volumen sind: &quot;&lt;&lt;endl;
		cout&lt;&lt; &quot;\n (0) - Ende &quot;&lt;&lt;endl;

		cout&lt;&lt;&quot;\n Eingabe : &quot;;
		cin&gt;&gt; men;

	switch(men)
	{ 
		case ('1'): lies (n,a);
		break;

		case ('2'): if(n&gt;0)maximum(n,a);
					else cout&lt;&lt;&quot;\n Keine Daten vorhanden!\n&quot;; break;
		break;

		case ('0'): cout&lt;&lt; &quot;Programm beendet&quot;&lt;&lt;endl;
		break;

		default: cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
	}
	getch();
	system(&quot;cls&quot;);

	}while( men=! 0);

cin.ignore();

return 0;
}
 /*------------------------------------------------------------------------*/
</code></pre>
<p>Vielen Dank für euer Aufmerksamkeit.</p>
<p>MFG<br />
vanhonk</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289709/fehler-quot-nicht-initalisierte-lokale-variable-quot-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 23:52:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289709.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Jul 2011 12:58:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 12:58:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin erst seit kurzem dabei ein wenig c++ zu programmieren. Eigentlich sollte es ein recht simples Porgramm werden mit dem ich Durchmesser einlese und den Größten Durchmesser ausgeben kann. Leider sind fehler aufgetreten die ich persönlich nicht korrigiert bekomme. Hoffe jemand kann mir schnell helfen.</p>
<p>Er führt das Progamm zwar aus aber mit den Fehlern:</p>
<p>- n sei nicht initalisierte lokale variable (habe sie doch aber initailiesiert)<br />
- max sei nicht initaliesiert ....... (auch eigentlich initaliesiert)</p>
<p>Mein Quelltext wie folgt:</p>
<pre><code class="language-cpp">#include &lt;conio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;

using namespace std;
#define nmax 100 
#define pi 3.1415926

int lies(int n, double d[])
{  
		 n=0;							
		do{	cout&lt;&lt;&quot;\n Durchmesser des &quot;&lt;&lt;n+1&lt;&lt;&quot;. Elementes (Ende bei &lt;=0):&quot;;
		cin&gt;&gt;d[n];
		if(d[n]&lt;=0) break;
		n++;
		}while(n&lt;nmax);
	return n;		
}
double maximum(int i ,double d[nmax])
{  
	double max;
	for(i=0;i&lt;=nmax;i++){
		if (d[i]&gt;max)
			max = d[i];
						}
	return max;
		cout&lt;&lt; &quot;\n Der maximale Durchmesser beträgt&quot;&lt;&lt;max&lt;&lt;endl;
		cout&lt;&lt; &quot;\n Das maximale Volumen beträgt : &quot;&lt;&lt;pi/6*max*max*max&lt;&lt; endl;

}
int main()
{   char men ;	int n; double a[nmax] ;
	do
	{	cout&lt;&lt;&quot;--Startmenue--&quot;&lt;&lt;endl;
		cout&lt;&lt;&quot;\n (1) - Durchmesser eingeben&quot;&lt;&lt;endl;
		cout&lt;&lt; &quot;\n (2) - Größter Durchmesser und Volumen sind: &quot;&lt;&lt;endl;
		cout&lt;&lt; &quot;\n (0) - Ende &quot;&lt;&lt;endl;

		cout&lt;&lt;&quot;\n Eingabe : &quot;;
		cin&gt;&gt; men;

	switch(men)
	{ 
		case ('1'): lies (n,a);
		break;

		case ('2'): if(n&gt;0)maximum(n,a);
					else cout&lt;&lt;&quot;\n Keine Daten vorhanden!\n&quot;; break;
		break;

		case ('0'): cout&lt;&lt; &quot;Programm beendet&quot;&lt;&lt;endl;
		break;

		default: cout &lt;&lt; &quot;Falsche Eingabe!&quot; &lt;&lt; endl;
	}
	getch();
	system(&quot;cls&quot;);

	}while( men=! 0);

cin.ignore();

return 0;
}
 /*------------------------------------------------------------------------*/
</code></pre>
<p>Vielen Dank für euer Aufmerksamkeit.</p>
<p>MFG<br />
vanhonk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091359</guid><dc:creator><![CDATA[VanHonk]]></dc:creator><pubDate>Mon, 11 Jul 2011 12:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 13:08:00 GMT]]></title><description><![CDATA[<p>Es geht um die Variable n deiner main-Funktion. Die hast du nicht initialisiert (Zeile 34).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091365</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 11 Jul 2011 13:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 13:08:06 GMT]]></title><description><![CDATA[<p>Der Compiler meckert wahrscheinlich über das n in Zeile 34 und das max in Zeile 23. Diese sind beide nicht initialisiert.<br />
Dein Compiler wird dir aber vermutlich die Zeilennummern verraten, oder?<br />
Ach ja, warum setzt du in Zeile 13 den übergebenen Parameter auf 0, was für einen Sinn macht dann dieser?<br />
Dass es läuft, kann daran liegen, dass du die Debugversion testet, bei der lokale Variablen von vielen Compilern mit 0 initialisiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091366</guid><dc:creator><![CDATA[yahendrik]]></dc:creator><pubDate>Mon, 11 Jul 2011 13:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 13:10:52 GMT]]></title><description><![CDATA[<p>VanHonk schrieb:</p>
<blockquote>
<p>- n sei nicht initalisierte lokale variable (habe sie doch aber initailiesiert)</p>
</blockquote>
<p>Hast du nicht. lies(n,a) tut nicht, was du zu denken scheinst. Du benutzt erstens den übergebenen Wert von n garnicht in der Funktion sondern überschreibst ihn, und zweitens speicherst du die Rückgabe von lies(n,a) in zeile 47 nirgendwo. Stattdessen übergibst du den uninitialisierten Wert von n an die lies-Funktion und tust nichts damit.<br />
Das n in der Funktion und das n in Zeile 47 sind zwei verschiedene Variablen!</p>
<blockquote>
<p>- max sei nicht initaliesiert ....... (auch eigentlich initaliesiert)</p>
</blockquote>
<p>Nö. In Zeile 23 definierst du max, ohne einen Wert zuzuweisen. Danach in der if-Abfrage vergleichst du mit dem uninitialisierten max.</p>
<p>Einige Dinge noch:<br />
- &lt;stdlib.h&gt; ist kein C++, nutze stattdessen &lt;cstdlib&gt;<br />
- getch() und system(&quot;cls&quot;) sind nicht portabel, da gibts bessere alternativen.<br />
- Das alles sieht etwas zusammengeschnibbelt aus, scheinbar scheinst du nicht genau zu wissen, was du da zusammenkopiert (und vllt. etwas modifiziert) hast. Fang am besten mit den Basics an und arbeite dich langsam hoch, auch wenns mühsam ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091367</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 11 Jul 2011 13:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 13:13:31 GMT]]></title><description><![CDATA[<p>Übrigens, die Deklaration von Variablen am Anfang des Scopes muss gemacht werden, wenn man einen (nicht C99-fähigen)-C-Compiler verwendet.<br />
In C++ solltest du dir angewöhnen, Variablen so spät wie möglich zu deklarieren und diese gleich initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091369</guid><dc:creator><![CDATA[yahendrik]]></dc:creator><pubDate>Mon, 11 Jul 2011 13:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 14:18:24 GMT]]></title><description><![CDATA[<p>Danke erst einmal für die Antworten, haben mich ein ganz wenig weitergebracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>yahendrik schrieb:</p>
<blockquote>
<p>Ach ja, warum setzt du in Zeile 13 den übergebenen Parameter auf 0, was für einen Sinn macht dann dieser?</p>
</blockquote>
<p>Damit beim cout&lt;&lt;1+n&lt;&lt; richtige gezählt bzw. dargestellt wird.</p>
<p>Habe nun der Variablen max einen Wert zugewiesen, war auch doof in der for schleife etwas zu vergleichen das keinen Wert besitzt. Code nun wie folgt:</p>
<pre><code class="language-cpp">double max= 0;
	for(i=0;i&lt;=nmax;i++){
		if (d[i]&gt;max)
			max = d[i];
						}
	return max;
</code></pre>
<p>pumuckl schrieb:</p>
<blockquote>
<p>Das n in der Funktion und das n in Zeile 47 sind zwei verschiedene Variablen!</p>
</blockquote>
<p>Gut aus n wurd x, somit ist nun alles initalisiert.</p>
<pre><code class="language-cpp">int main()
{   char men ;	int x= 0; double a[nmax] ;
</code></pre>
<p>Das Programm funktioniert nur leider nicht so wie es soll, ohne Menü hatte ich ein ähnliches Programm ohne Maximum welches tadellos geklappt hat. Muss nochmal über den Quelltext schauen oder jemand gibt mir nen denkanstoß <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2091391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091391</guid><dc:creator><![CDATA[VanHonk]]></dc:creator><pubDate>Mon, 11 Jul 2011 14:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 14:37:03 GMT]]></title><description><![CDATA[<p>VanHonk schrieb:</p>
<blockquote>
<p>Damit beim cout&lt;&lt;1+n&lt;&lt; richtige gezählt bzw. dargestellt wird.</p>
</blockquote>
<p>Wenn n sowieso immer 0 vor der Schleife sein soll, dann kannst du dir aber den Übergabeparameter sparen. Der hat so einfach keinen Sinn. Eine normale, lokale Variable tut's dann auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091397</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 11 Jul 2011 14:37:03 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler &amp;quot;Nicht initalisierte lokale Variable&amp;quot;, hilfe ? on Mon, 11 Jul 2011 16:04:27 GMT]]></title><description><![CDATA[<p>Ich würde mal vermuten, daß er am Ende der Funktion die endgültige Anzahl im Hauptprogramm weiterverwenden will. Wenn das so ist: Stichwort &quot;Referenzen&quot;. (aber ich würde ohnehin eher einen std::vector&lt;&gt; verwenden anstelle des blanken Arrays)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2091437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2091437</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 11 Jul 2011 16:04:27 GMT</pubDate></item></channel></rss>