<?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[Programm bricht bei neuer Variable ab]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich hab da ein für mich unverständliches Problem mit einem Feld.<br />
Wenn ich</p>
<p>int nummer<br />
int Alter_[nummer]<br />
string vorname_[nummer]<br />
string nachname_[nummer]</p>
<p>bereitstellen lasse, und diese werte dann in einer schleife (in der 'nummer' gleich dem aktuellen schleifendurchlauf entspricht) jeweils einzeln beschreibe klappt alles noch.<br />
sobald ich aber zusätzlich 'string wohnort_[nummer]' einfüge, und da nun auch jeweils einen wert pro schleifendurchlauf zuordnen will, bricht das programm ab..</p>
<p>woran kann das liegen?<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130137/programm-bricht-bei-neuer-variable-ab</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 13:30:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130137.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Dec 2005 07:29:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 07:29:00 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich hab da ein für mich unverständliches Problem mit einem Feld.<br />
Wenn ich</p>
<p>int nummer<br />
int Alter_[nummer]<br />
string vorname_[nummer]<br />
string nachname_[nummer]</p>
<p>bereitstellen lasse, und diese werte dann in einer schleife (in der 'nummer' gleich dem aktuellen schleifendurchlauf entspricht) jeweils einzeln beschreibe klappt alles noch.<br />
sobald ich aber zusätzlich 'string wohnort_[nummer]' einfüge, und da nun auch jeweils einen wert pro schleifendurchlauf zuordnen will, bricht das programm ab..</p>
<p>woran kann das liegen?<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946097</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Tue, 20 Dec 2005 07:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 07:34:24 GMT]]></title><description><![CDATA[<p>Was ist denn das? - bestimmt kein funktionsfähiger Quelltext.</p>
<p>Kannst du mal etwas mehr Code posten, bei dem der Fehler auftritt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946103</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Dec 2005 07:34:24 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:15:18 GMT]]></title><description><![CDATA[<p>#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;</p>
<p>using namespace std;</p>
<p>int main()<br />
{</p>
<p>int nummer;<br />
int schleife1;<br />
int schleife2;<br />
int zaehler;<br />
int schleifebeenden;<br />
int alter_[nummer];</p>
<p>char abbrechen;</p>
<p>string vorname_[nummer];<br />
string nachname_[nummer];</p>
<p>zaehler=0;</p>
<p>for(schleife1=0;schleife1&lt;1000;schleife1=schleife1+1)<br />
{<br />
nummer=schleife1;</p>
<p>cout &lt;&lt; &quot; Bitte Vornamen eingeben: &quot;;<br />
cin &gt;&gt; vorname_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot; Bitte Nachnamen eingeben: &quot;;<br />
cin &gt;&gt; nachname_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot; Bitte Alter eingeben: &quot;;<br />
cin &gt;&gt; alter_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>zaehler=zaehler+1;</p>
<p>cout &lt;&lt; &quot; Schleife abbrechen (j/n)? &quot;;<br />
cin &gt;&gt; schleifebeenden;</p>
<p>if(schleifebeenden='j')<br />
{<br />
schleife1=2000;<br />
}<br />
}</p>
<p>nummer=0;</p>
<p>for(schleife2=0;schleife2&lt;zaehler;schleife2=schleife2+1)<br />
{</p>
<p>nummer=schleife2;</p>
<p>cout &lt;&lt; &quot; Vorname: &quot; &lt;&lt; vorname_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot; Nachname: &quot; &lt;&lt; nachname_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot; Alter: &quot; &lt;&lt; alter_[nummer];<br />
cout &lt;&lt; &quot;&quot; &lt;&lt; endl;</p>
<p>}</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946117</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:05:23 GMT]]></title><description><![CDATA[<p>Sag mal, compiliert das wirklich? Wenn ja, was für einen Compiler verwendest du?</p>
<p>a)</p>
<pre><code class="language-cpp">int nummer;
int alter_[nummer];
</code></pre>
<p>erzeugt ein Array undefinierter Größe (da 'nummer' nicht initialisiert wurde)</p>
<p>b)</p>
<pre><code class="language-cpp">for(int schleife1=0;schleife1&lt;1000;schleife1=schleife1+1) 
{ 
  nummer=schleife1; 
  //...
}
</code></pre>
<p>Also auf so eine Idee für die Schleifenkonstruktion muß man erst einmal kommen <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="😃"
    /><br />
(btw, die Schleife verlässt du am schnellsten mit &quot;break&quot;)</p>
<p>c)</p>
<pre><code class="language-cpp">nummer=schleife1; 
cout &lt;&lt; &quot; Bitte Vornamen eingeben: &quot;; 
cin &gt;&gt; vorname_[nummer];
</code></pre>
<p>Selbst wenn die obige Konstruktion (siehe a) ein Array der variablen Größe 'nummer' anlegen würde, wäre das da eine Katastrophe, da die Indizes nur von 0 bis nummer-1 gültig sind.</p>
<p>PS: Lern erstmal ordentlich C++ programmieren, bevor du dich über solche Fehler wunderst :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946120</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:20:12 GMT]]></title><description><![CDATA[<p>ich sag es mal so:<br />
es klappt, und dass ich mich wundern kann liegt wohl eher daran, dass bei mir solche fehler auftreten können<br />
will heißen: stures programmieren wirst du gut können... und was soll das eigentlich, ich bin hier, um neues zu erfahren, nicht um zu erfahren, dass du ein angeber bist</p>
<p>und das array hat zwar unbestimmte größe, wird aber nur mit einer bestimmten anzahl von bestandteilen gefüllt, was soll da verwerflich sein?</p>
<p>das int in der schleife ist ein tippfehler, darfst ihn aber behalten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946122</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:27:04 GMT]]></title><description><![CDATA[<p>nosocks schrieb:</p>
<blockquote>
<p>ich sag es mal so:<br />
es klappt, und dass ich mich wundern kann liegt wohl eher daran, dass bei mir solche fehler auftreten können</p>
</blockquote>
<p>Was mich wundert, ist eher die Tatsache, daß es klappt bzw. compiliert wird (laut Standard dürfte das überhaupt nicht erlaubt sein - und wenn du dich nicht an den Standard hältst, kann alles passieren).</p>
<blockquote>
<p>will heißen: stures programmieren wirst du gut können... und was soll das eigentlich, ich bin hier, um neues zu erfahren, nicht um zu erfahren, dass du ein angeber bist</p>
</blockquote>
<p>Also beleidigen lasse ich mich schon gar nicht - wenn du also in der Schiene weitermachen willst, such dir eine andere Plattform.</p>
<blockquote>
<p>und das array hat zwar unbestimmte größe, wird aber nur mit einer bestimmten anzahl von bestandteilen gefüllt, was soll da verwerflich sein?</p>
</blockquote>
<p>Das Array hat eine unbestimmte Größe, aber die wird einmal bei der Definition festgelegt und ist dann konstant. Das heißt, du hast keine Ahnung, wieviel Platz du nun wirklich zur Verfügung hast<br />
Im günstigsten Fall schreibst du damit in Bereiche, die mit irgendwelchem Datenmüll belegt sind (oder dein Array ist zufällig groß genug für deine Zwecke), im ungünstigsten Fall zerlegst du dir deine eigenen Daten beim Versuch, über die Arraygrenzen hinauszuschreiben.</p>
<p>Kleiner Tip: Wenn du wirklich die Größe zur Laufzeit ändern willst, nimm lieber std::vector.</p>
<blockquote>
<p>das int in der schleife ist ein tippfehler, darfst ihn aber behalten</p>
</blockquote>
<p>Was soll ich denn mit deinen Tipfehlern? (btw, das int war auch gar nicht das Problem bei der Konstruktion - vielmehr ist es imho unsinnig, den Schleifenindex parallel in zwei (*nachguckt* nein drei) Variablen mitzuschleifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946134</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:30:27 GMT]]></title><description><![CDATA[<p>Hallo,<br />
in c++ musst du wie in c oder java jeden speicher den du benützt vorher explizit anfordern. das geht entweder über ein</p>
<pre><code class="language-cpp">int array[15]; // platz für 15 elemente von array[0] bis array[14]
</code></pre>
<p>oder über ein</p>
<pre><code class="language-cpp">int anzahl = 15;
int *array = new int [anzahl];
// mach irgnwas damit

delete [] array; // wichtig: mit new angeforderter speicher muss freigegeben werden!
</code></pre>
<p>die erste methode ist nur mit im voraus bekannter größe möglich, die zweite mit beliebiger. wenn du in jedem schleifendurchlauf ein feld mehr brauchst kannst du als einfache methode so machen:</p>
<pre><code class="language-cpp">int *anzahl = new int [1];
anzahl[0] = 0;
for (int i = 1; i &lt; 123; ++i)
{
    int *tmp = new int [i+1]; // neues feld 1 grösser
    std::memcpy(anzahl, tmp, i*sizeof(int)); // rüberkopieren
    tmp[i] = neuerwert;
    delete [] anzahl; // altes array läöschen
    anzahl = tmp; // zeiger umbieten
}
</code></pre>
<p>in der faq und auch im forum &quot;magazin&quot; stehen ein paar gute einträge zum thema array und speicherverwaltung.</p>
<p>ach ja: und bitte code-tags verwenden: sfds</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@cstoll</a>: bitte ball flach halten, du bist nicht ganz unschuldig an der reaktion mit deinem ersten post</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946135</guid><dc:creator><![CDATA[Korbinian]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:39:38 GMT]]></title><description><![CDATA[<p>danke euch beiden, ich wollte ja wirklich nur eine antwort, umso besser dass ich gleich mehrere bekommen hab</p>
<p>aber leider kann ich auch mit den verbesserungen keinen dritten string einbauen, wobei ich wieder beim anfangsproblem wäre</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946152</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:39:38 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 08:50:19 GMT]]></title><description><![CDATA[<p>thx!</p>
<p>ich hab einfach einmal 250 statt 1000 plätze bereitgestellt und nun klappt es (was ich trotzdem ein wenig verwunderlich finde)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946156</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Tue, 20 Dec 2005 08:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 11:48:21 GMT]]></title><description><![CDATA[<p>zeig doch nochmal deinen ganzen code. vielleicht hast du noch einen fehler drin!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/946215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946215</guid><dc:creator><![CDATA[Korbinian]]></dc:creator><pubDate>Tue, 20 Dec 2005 11:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Tue, 20 Dec 2005 11:53:16 GMT]]></title><description><![CDATA[<p>Solange du wirklich weißt, wieviel Platz du hast (und dich an dieses Wissen hältst), ist das alles kein Problem <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="😉"
    /> Problematisch wird dein Programm erst, wenn du dich nicht mehr an deine selbst vorgegebenen Grenzen hältst - das nennt sich dann &quot;undefined behaviour&quot; (im Klartext: Dein Programm kann machen, was es will, vom simplen Absturz bis zum Formatieren deiner Festplatte ;))</p>
<p>Deswegen solltest du auch besser auf einen vector wechseln, der ist in der Lage, seine Elemente zu organisieren:</p>
<pre><code class="language-cpp">struct Datensatz
{
  string vorname,nachname;
  int alter;
}

vector&lt;Datensatz&gt; Daten;
char ende='n';
while(tolower(ende)!='j')
{
  Datensatz d0;
  cout&lt;&lt;&quot;Bitte Name angeben:&quot;;
  cin&gt;&gt;d0.vorname&gt;&gt;d0.nachname;
  cout&lt;&lt;&quot;Bitte Alter angeben:&quot;;
  cin&gt;&gt;d0.alter;
  Daten.push_back(d0);
  cout&lt;&lt;&quot;Noch ein Datensatz?&quot;;
  cin&gt;&gt;ende;
}

for(int i=0;i&lt;Daten.size();++i)
  cout&lt;&lt;i+1&lt;&lt;&quot;. &quot;&lt;&lt;Daten[i].vorname&lt;&lt;&quot; &quot;&lt;&lt;Daten[i].nachname&lt;&lt;&quot; (&quot;&lt;&lt;Daten[i].alter&lt;&lt;&quot; Jahre)\n&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/946218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/946218</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Dec 2005 11:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to Programm bricht bei neuer Variable ab on Wed, 21 Dec 2005 18:40:16 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Klappt alles jetzt fehlerfrei! Werde nun auch generell solche Dinge mit Vektoren angehen.</p>
<p>Und auf diesem Wege wünsch ich allen ein frohes Weihnachtsfest!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947324</guid><dc:creator><![CDATA[nosocks]]></dc:creator><pubDate>Wed, 21 Dec 2005 18:40:16 GMT</pubDate></item></channel></rss>