<?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 Über-&#x2F;Ausgabe fehlerhaft]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem und suche immer noch des Rätsels Lösung. Und zwar erstelle ich vier Arrays aus einer Matrix mat[r][c] mit r für die Reihe und C für die Spalte. Jedes Array soll dann die Spalte dieser Matrix in sich haben. Jedoch wirft mir der Abruf dieses Arrays nur die letzte eingetragene Spalte aus.</p>
<p>Zeig das mal am Code:</p>
<p>void Matrix::sort_matrix(){<br />
for (int r = 0 ; r &lt; row ; r++){<br />
SpalteA[r]= mat[r][0];<br />
//cout &lt;&lt; A[r]&lt;&lt; &quot; &quot; &lt;&lt; mat[r][0]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int s = 0 ; s &lt; row ; s++){<br />
SpalteB[s]= mat[s][1];<br />
//cout &lt;&lt; B[s]&lt;&lt; &quot; &quot; &lt;&lt; mat[s][1]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int t = 0 ; t &lt; row ; t++){<br />
SpalteC[t]= mat[t][2];<br />
//cout &lt;&lt; C[t]&lt;&lt; &quot; &quot; &lt;&lt; mat[t][2]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int v = 0 ; v &lt; row ; v++)<br />
cout &lt;&lt; SpalteA[v] &lt;&lt; &quot; &quot;;<br />
cout &lt;&lt; &quot;\n&quot;;<br />
for (int u = 0 ; u &lt; row ; u++){<br />
SpalteD[u]= mat[u][3];<br />
//cout &lt;&lt; D[u]&lt;&lt; &quot; &quot; &lt;&lt; mat[u][3]&lt;&lt;&quot;\n&quot;;<br />
}<br />
}</p>
<p>So wenn jetzt die Spalte A nach der dritten Zuweisung abrufe, zeigt er mir aber die SpalteC. Ich denke, das irgendetwas mit der Zuweisung falsch läuft!</p>
<p>Kann mir jemand helfen und mir meinen Fehler aufdecken?!</p>
<p>Gruss und Dank Jimmie</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192692/array-über-ausgabe-fehlerhaft</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 14:44:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192692.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Sep 2007 15:18:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:18:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein kleines Problem und suche immer noch des Rätsels Lösung. Und zwar erstelle ich vier Arrays aus einer Matrix mat[r][c] mit r für die Reihe und C für die Spalte. Jedes Array soll dann die Spalte dieser Matrix in sich haben. Jedoch wirft mir der Abruf dieses Arrays nur die letzte eingetragene Spalte aus.</p>
<p>Zeig das mal am Code:</p>
<p>void Matrix::sort_matrix(){<br />
for (int r = 0 ; r &lt; row ; r++){<br />
SpalteA[r]= mat[r][0];<br />
//cout &lt;&lt; A[r]&lt;&lt; &quot; &quot; &lt;&lt; mat[r][0]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int s = 0 ; s &lt; row ; s++){<br />
SpalteB[s]= mat[s][1];<br />
//cout &lt;&lt; B[s]&lt;&lt; &quot; &quot; &lt;&lt; mat[s][1]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int t = 0 ; t &lt; row ; t++){<br />
SpalteC[t]= mat[t][2];<br />
//cout &lt;&lt; C[t]&lt;&lt; &quot; &quot; &lt;&lt; mat[t][2]&lt;&lt;&quot;\n&quot;;<br />
}<br />
for (int v = 0 ; v &lt; row ; v++)<br />
cout &lt;&lt; SpalteA[v] &lt;&lt; &quot; &quot;;<br />
cout &lt;&lt; &quot;\n&quot;;<br />
for (int u = 0 ; u &lt; row ; u++){<br />
SpalteD[u]= mat[u][3];<br />
//cout &lt;&lt; D[u]&lt;&lt; &quot; &quot; &lt;&lt; mat[u][3]&lt;&lt;&quot;\n&quot;;<br />
}<br />
}</p>
<p>So wenn jetzt die Spalte A nach der dritten Zuweisung abrufe, zeigt er mir aber die SpalteC. Ich denke, das irgendetwas mit der Zuweisung falsch läuft!</p>
<p>Kann mir jemand helfen und mir meinen Fehler aufdecken?!</p>
<p>Gruss und Dank Jimmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367085</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:18:24 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:22:11 GMT]]></title><description><![CDATA[<p>Hat die Matrix überhaupt genug Spalten, um die ganzen Zuweisungen durchführen zu können? Wenn nicht, landest du vermutlich irgendwo im Speicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367088</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:22:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:25:10 GMT]]></title><description><![CDATA[<p>Yeep hat sie... mit cout macht sie auch alles richtig. mat[r][c] ist immer korrekt! Problem ist, die Zuweisung stimmt nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367089</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:25:10 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:29:57 GMT]]></title><description><![CDATA[<p>Zeig doch mal die Definition der beteiligten Variablen (Arrays).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367095</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:32:57 GMT]]></title><description><![CDATA[<p>Erstellen der Matrix:</p>
<p>Matrix(int r = 0, int c = 0) {<br />
row = r;<br />
col = c;<br />
mat = new unsigned long* [row];<br />
for(int j = 0; j &lt; row ; j++)<br />
mat[j] = new unsigned long[col];<br />
for(int i = 0; i &lt; row ; i++)<br />
for(int j = 0; j &lt; col ; j++)<br />
mat[i][j] = 0;<br />
}</p>
<p>Matrix(const string &amp;path) {<br />
int q=0;<br />
ifstream fin(path.c_str());<br />
ifstream infile(path.c_str());<br />
if (!fin) // File Error<br />
cout &lt;&lt; &quot; Sorry the file doesnot exist &quot;;<br />
else {<br />
while (infile&gt;&gt;iwert) q++;<br />
//cout&lt;&lt; q;<br />
infile.close();<br />
row=q/4;<br />
col=4;<br />
if (path == &quot;helnum.txt&quot;){<br />
mat = new unsigned long* [row];<br />
for(int j = 0; j &lt; row ; j++)<br />
mat[j] = new unsigned long[row];<br />
for (int c = 0 ; c &lt; col ; c++)<br />
for (int r = 0 ; r &lt; row ; r++)<br />
fin &gt;&gt; mat[r][c];<br />
fin.close();<br />
} else {<br />
mat = new unsigned long* [row];<br />
for(int j = 0; j &lt; row ; j++)<br />
mat[j] = new unsigned long[col];<br />
for (int r = 0 ; r &lt; row ; r++)<br />
for (int c = 0 ; c &lt; col ; c++)<br />
fin &gt;&gt; mat[r][c];<br />
fin.close();<br />
}<br />
}<br />
}</p>
<p>und Spalte A-D unsigned long SpalteA[], ..Spalte D[];</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367096</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:43:52 GMT]]></title><description><![CDATA[<p>Jimmie schrieb:</p>
<blockquote>
<p>und Spalte A-D unsigned long SpalteA[], ..Spalte D[];</p>
</blockquote>
<p>Wie groß?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367104</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 15:57:37 GMT]]></title><description><![CDATA[<p>undefiniert, packe da so viel Werte rein, wie nötig, da die Matrix immer unterschiedlich gross ist.<br />
Hat auch bei anderen Arrays funktioniert, nur wenn ich diese Matrix zuweise funzt es nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367115</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 15:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 16:08:08 GMT]]></title><description><![CDATA[<p>was meinst du mit</p>
<blockquote>
<p>nur wenn ich diese Matrix zuweise funzt es nicht</p>
</blockquote>
<p>?</p>
<p>hast du irgendwo sowas stehen wie</p>
<pre><code class="language-cpp">Matrix a(5,7);
...//mach irgendwas mit a
Matrix b = a;
</code></pre>
<p>?</p>
<p>dann zeig doch mal bitte deinen copy ctor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367124</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Mon, 17 Sep 2007 16:08:08 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 16:17:44 GMT]]></title><description><![CDATA[<p>Nein, aber ich habe ein Array Zahl[], das auch keine bestimmte Grösse hat und dem ich x-beliebig Werte zuweisen kann. Demnach denke ich, das es mit der Matrix zu tun hat.</p>
<p>Die Matrix wird aus einer Datei gelesen:<br />
Beispiel:<br />
17 395 412 987<br />
17 395 412 1019<br />
678 395 567 352<br />
678 395 567 353</p>
<p>Die Matrix beinhaltet dann die Werte in mat[r][c]<br />
wenn ich das cout &lt;&lt; A[r]&lt;&lt; &quot; &quot; &lt;&lt; mat[r][0]&lt;&lt;&quot;\n&quot;; ausführe direkt hinter der Zuweisung, erhalte ich auch die richtigen Angaben.<br />
Beispiel<br />
A[0]=17 mat[0][0]=17<br />
A[1]=17 mat[1][0]=17<br />
A[2]=678 mat[2][0]=678<br />
and so on..</p>
<p>Die Werte scheinen aber nachdem ich SpalteB auffülle, auch die Werte aus der SpalteA zu überschreiben.<br />
Denn danach ist SpalteA mit 395,395, 395... etc gefüllt.<br />
Deswegen denke ich ist es was mit der Zuordnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367141</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 16:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 17:24:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">mat = new unsigned long* [row]; 
for(int j = 0; j &lt; row ; j++) 
mat[j] = new unsigned long[row]; 
for (int c = 0 ; c &lt; col ; c++) 
for (int r = 0 ; r &lt; row ; r++) 
fin &gt;&gt; mat[r][c];
</code></pre>
<p>also erstmal ist mat row*row groß, was so wohl nicht gewollt ist. eher col*row.</p>
<p>zweitens iterierst du in der schleife als erstes über row und dann über col. in dem else zweig iterierst du als erstes über col und dann über row. ich würde das mal konsistent machen.</p>
<p>was es damit auf sich?</p>
<pre><code class="language-cpp">ifstream fin(path.c_str()); 
ifstream infile(path.c_str());
</code></pre>
<p>warum zweimal?</p>
<p>was machst du hier?</p>
<pre><code class="language-cpp">while (infile&gt;&gt;iwert) q++;
</code></pre>
<p>ok du zählst die einträge, aber warum verwirfst du dann die alten werte anstatt sie in einem vector unterzubringen? um sie dann zb. schneller in die matrix packen zu können.</p>
<p>warum arbeitest du nicht mit vectoren? wäre doch einfacher oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367186</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Mon, 17 Sep 2007 17:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 17:49:30 GMT]]></title><description><![CDATA[<p>Also erst mal danke, du hast ein Fehler gefunden, den ich auch schon etwas länger suche..(row *row Geschichte) *gg*</p>
<p>Die Matrix ist ja eigentlich nur eindimensional, so habe ich sie konstruiert. Und so funktioniert sie auch.</p>
<p>Warum ich keine Vektoren nehme? Hmm.. meinst du, das die Zuweisungsprobleme sich dann auflösen werden? Oder meintest du, das ich die Matrix als Vektor umschreiben soll?? Das ist leider nicht so einfach, der Code ist leider nicht so klein, das das so auf die schnelle geht!</p>
<p>Kann es mal mit den Vektoren versuchen, denke aber nicht, das dadurch das Zuweisungsproblem sich verändern wird....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367210</guid><dc:creator><![CDATA[Jimmie]]></dc:creator><pubDate>Mon, 17 Sep 2007 17:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Mon, 17 Sep 2007 18:41:48 GMT]]></title><description><![CDATA[<p>du hast noch nichts zu den anderen fragen von mir geschrieben <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, ein vektor ist im allgemeinem etwas einfacher zu handhaben als ein array und der overhead ist wirklich gering.<br />
aber ich vertstehe das man keine lust hat seinen code umzuschreiben, wenn er noch nicht richtig funzt..aber du könntest es ja bei einem refactoring machen..</p>
<p>hast du mit nem debugger in mat reingeschaut? ansosnten zeig doch mal den code wo du die matrix verwendest..ggf. finden wir da den fehler..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367253</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Mon, 17 Sep 2007 18:41:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array Über-&#x2F;Ausgabe fehlerhaft on Tue, 18 Sep 2007 06:33:28 GMT]]></title><description><![CDATA[<p>Jimmie schrieb:</p>
<blockquote>
<p>undefiniert, packe da so viel Werte rein, wie nötig, da die Matrix immer unterschiedlich gross ist.<br />
Hat auch bei anderen Arrays funktioniert, nur wenn ich diese Matrix zuweise funzt es nicht!</p>
</blockquote>
<p>Und wo setzt du die Größe fest? (bei &quot;normalen&quot; Arrays muß die Größe bereits zur Compilezeit angegeben werden - und eine Definition <code>long Spalte[];</code> ohne Größenangabe ist eigentlich nicht zulässig)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367419</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 18 Sep 2007 06:33:28 GMT</pubDate></item></channel></rss>