<?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[Array einen Wert zuweisen]]></title><description><![CDATA[<p>Guten Tag zusammen<br />
Entschuldigt bitte meine Anfängerfrage, ich habe bis anhin nur mit C# intensiv gearbeitet.</p>
<p>Irgendwie klappt das kopieren eines int Wertes in einen int Array nicht.<br />
Bei mir siehts etwa folgendermassen aus:</p>
<pre><code class="language-cpp">int* aiMax = new int[10];
int temp = atoi(input); //Funktioniert super, der richtige Wert ist in temp
aiMax[index] = temp; //index ist eine variabel
</code></pre>
<p>Da passiert einfach gar nichts der Array hat weiterhin den Wert 0.</p>
<p>Danke für Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143504/array-einen-wert-zuweisen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 06:48:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143504.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Apr 2006 10:00:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:00:57 GMT]]></title><description><![CDATA[<p>Guten Tag zusammen<br />
Entschuldigt bitte meine Anfängerfrage, ich habe bis anhin nur mit C# intensiv gearbeitet.</p>
<p>Irgendwie klappt das kopieren eines int Wertes in einen int Array nicht.<br />
Bei mir siehts etwa folgendermassen aus:</p>
<pre><code class="language-cpp">int* aiMax = new int[10];
int temp = atoi(input); //Funktioniert super, der richtige Wert ist in temp
aiMax[index] = temp; //index ist eine variabel
</code></pre>
<p>Da passiert einfach gar nichts der Array hat weiterhin den Wert 0.</p>
<p>Danke für Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033640</guid><dc:creator><![CDATA[analyzer]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:00:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:09:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>Da passiert einfach gar nichts der Array hat weiterhin den Wert 0.</p>
</blockquote>
<p>An Position index? Btw: Gilt, dass 0 &lt;= index &lt; 10?</p>
<p>Folgender Code-Snippet sollte funktionieren:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    int* vec = new int[10];
    index = 9;
    input = 18; // oder ein anderer Wert...
    vec[index] = input;

    std::cout &lt;&lt; &quot;vec[&quot; &lt;&lt; index &lt;&lt; &quot;] = &quot; &lt;&lt; vec[index] &lt;&lt; std::endl;
    delete[] vec; // Speicher auch wieder freigeben! Nicht vergessen.
}
</code></pre>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033648</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:12:41 GMT]]></title><description><![CDATA[<p>Möchtest du denn den ganzen Array füllen oder nur ein Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033650</guid><dc:creator><![CDATA[Praetorian]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:39:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6091">@Caipi</a>: Ja, beim Index z.B. 1. Mein Code Snipped sieht ja etwa gleich aus.</p>
<p>Ich möchte nur eine Array Element füllen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033665</guid><dc:creator><![CDATA[analyzer]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:39:54 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:43:31 GMT]]></title><description><![CDATA[<p>analyzer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6091">@Caipi</a>: Ja, beim Index z.B. 1. Mein Code Snipped sieht ja etwa gleich aus.</p>
</blockquote>
<p>Dann poste doch mal deinen, in etwa gleichaussehenden, Code-Snippet :).</p>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033667</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:43:31 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 10:56:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int iIndex = 0;
int temp = atoi(input);
aiMax[iIndex] = temp;
</code></pre>
<p>Ich verwende als Index eine Variabel da die ganze Sache später in einer while - Schleife stehen wird.</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;vec[&quot; &lt;&lt; index &lt;&lt; &quot;] = &quot; &lt;&lt; vec[index] &lt;&lt; std::endl;
</code></pre>
<p>Dieser Teil Deines Codes verstehe ich nicht, ich denke jedoch, dass dieser nur zur Ausgabe auf der Console ist.</p>
<p>Beim setzen eines Debuggerhaltepunktes hat temp der richtige Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033674</guid><dc:creator><![CDATA[analyzer]]></dc:creator><pubDate>Sun, 09 Apr 2006 10:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 12:42:01 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Kann in deinen Zeilen keinen Fehler entdecken. Poste doch mal ein compilierbares Minimalbeispiel, in welchem der Fehler reproduzierbar ist.</p>
<p>analyzer schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;vec[&quot; &lt;&lt; index &lt;&lt; &quot;] = &quot; &lt;&lt; vec[index] &lt;&lt; std::endl;
</code></pre>
<p>Dieser Teil Deines Codes verstehe ich nicht, ich denke jedoch, dass dieser nur zur Ausgabe auf der Console ist.</p>
</blockquote>
<p>Genau richtig gedacht :).</p>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033739</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 09 Apr 2006 12:42:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 12:48:09 GMT]]></title><description><![CDATA[<p>Eventuell mache ich die ganze Sache ein wenig kompliziert <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>
<pre><code class="language-cpp">//Input
ifstream stream(&quot;c:\\file.in&quot;);
char input[20];
//Erste Zeile lesen
stream &gt;&gt; input;
//Erste Zeile ist die Anzahl Datensätze
iAnzahlT = atoi(input);
//Array mit der maximale Anzahl an Zahlen
int* aiMax = new int[iAnzahlT];

int iIndex = 0;
while(!stream.eof())
{
//Buffer wieder zurücksetzen
for (int i = 0; i&lt;20; i++)
{
input[i] = -52;
}
stream.getline(input, 20);
int temp = atoi(input);
aiMax[iIndex] = temp;
iIndex++;
}
</code></pre>
<p>Wie schon erwähnt bin ich C++ erst am lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033747</guid><dc:creator><![CDATA[analyzer]]></dc:creator><pubDate>Sun, 09 Apr 2006 12:48:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 16:43:30 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Nehmen wir zuerst einmal an, dass in <a href="http://file.in" rel="nofollow">file.in</a> folgender Inhalt steht:</p>
<pre><code>3
9
18
27
</code></pre>
<p>Mit deinem Code erhalte ich jetzt (nachdem ich eine main() drumgeklatscht habe), einen Segmentation-Fault.</p>
<pre><code class="language-cpp">int main()
{
        fstream stream(&quot;in.txt&quot;);
        char input[20];
        //Erste Zeile lesen
        stream &gt;&gt; input;
        //Erste Zeile ist die Anzahl Datensätze
        int iAnzahlT = atoi(input);
        //Array mit der maximale Anzahl an Zahlen
        int* aiMax = new int[iAnzahlT];

        int iIndex = 0;
        while(!stream.eof())
        {
                //Buffer wieder zurücksetzen
                for (int i = 0; i&lt;20; i++)
                {
                        input[i] = -52;
                }
                stream.getline(input, 20);
                int temp = atoi(input);
                aiMax[iIndex] = temp;
                iIndex++;
        }
        cout &lt;&lt; endl;
}
</code></pre>
<p>Das liegt daran, dass du in der while Schleife nur auf !stream.eof() testest. eof() liefert aber nur true, wenn das Ende der mit dem Stream assozierten Datei bereits gelesen _wurde_! =&gt; Du versuchst in Speicher zu schreiben, der dir nicht gehört! (Siehe dazu auch: <a href="http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&amp;faq=eof#Answ" rel="nofollow">hier</a>).<br />
Also änder ich mal den Audruck in der While-Schleife zu.</p>
<pre><code class="language-cpp">while(stream.good() &amp;&amp; iIndex &lt; iAnzahlT)
</code></pre>
<p>.<br />
Desweiteren gebe ich den Speicher mit</p>
<pre><code class="language-cpp">delete[] aiMax;
</code></pre>
<p>auch wieder frei.</p>
<p>Mit diesen Änderungen sieht der Code so aus:</p>
<pre><code class="language-cpp">int main()
{
        fstream stream(&quot;in.txt&quot;);
        char input[20];
        //Erste Zeile lesen
        stream &gt;&gt; input;
        //Erste Zeile ist die Anzahl Datensätze
        int iAnzahlT = atoi(input);
        //Array mit der maximale Anzahl an Zahlen
        int* aiMax = new int[iAnzahlT];

        int iIndex = 0;
        while(stream.good() &amp;&amp; iIndex &lt; iAnzahlT)
        {
                //Buffer wieder zurücksetzen
                for (int i = 0; i&lt;20; i++)
                {
                        input[i] = -52;
                }
                stream.getline(input, 20);
                int temp = atoi(input);
                aiMax[iIndex] = temp;
                iIndex++;
        }
        delete[] aiMax;
}
</code></pre>
<p>Mit einer Kontroll-Ausgabe (z.B.)</p>
<pre><code class="language-cpp">copy(aiMax, aiMax + iAnzahlT, ostream_iterator&lt;int&gt;(cout, &quot;, &quot;)); // benötigt &lt;iterator&gt; und &lt;algorithm&gt;
</code></pre>
<p>Erhalte ich die Ausgabe:</p>
<pre><code>9, 18, 27,
</code></pre>
<p>.</p>
<p>So. Jetzt funktioniert der Code-Snippet. Allerdings würde ich ihn Folgendermaßen schreiben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;
using namespace std;

int main()
{
        fstream stream(&quot;in.txt&quot;);
        // Fehlerbehandlung einbauen.
        if(!stream)
            return 1;
        int input; // Wenn du sowieso nur Zahlen einließt, wieso deklarierst du
                   // input dann nicht vom Typ int?
        //Erste Zeile lesen
        stream &gt;&gt; input;
        // Es entfallen die lästigen (und unsicheren) Konvertierungen mittels der Funktion atoi().
        int iAnzahlT = input; // Wie soll verfahren werden, wenn input negativ? (In diesem Fall wirft new eine Exception).
        //Array mit der maximale Anzahl an Zahlen
        int* aiMax = new int[iAnzahlT];

        int iIndex = 0;
        while(iIndex &lt; iAnzahlT &amp;&amp; stream &gt;&gt; aiMax[iIndex])
        {
                // die For-Schleife entfällt.
                // stream.getline, atoi() und temp ebenfalls.
                iIndex++;
        }
        copy(aiMax, aiMax + iIndex, ostream_iterator&lt;int&gt;(cout, &quot;, &quot;)); // Kontrll-Ausgabe nach cout.
        delete[] aiMax; // Speicher freigeben!
}
</code></pre>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033964</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 09 Apr 2006 16:43:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array einen Wert zuweisen on Sun, 09 Apr 2006 17:49:47 GMT]]></title><description><![CDATA[<p>Danke für Deine Antwort.</p>
<p>Das zuweisen der Werte im Array funktioniert nun.<br />
Im Textfile stehen nun weitere Angaben:</p>
<pre><code>1 6
0
1 4
1 8
1 7
0
2 2 3
2 1 5
0
0
</code></pre>
<p>Ich möchte nun auch die folgenden Zahlen auf einer Zeile sauber auslesen können. Leider gibts da irgendwie ein durcheinander:</p>
<pre><code>6, 1, 1, 1, 0, 2, 2, 5, 0,
</code></pre>
<p>Aus diesem Grund habe ich vorher getline verwendet.<br />
Man kann von der Korrektheit der Eingaben ausgehen (keine negativen Werte).</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1034010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1034010</guid><dc:creator><![CDATA[analyzer]]></dc:creator><pubDate>Sun, 09 Apr 2006 17:49:47 GMT</pubDate></item></channel></rss>