<?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[Arrays mithilfe von Pointern von Funktionen übergeben]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem, mit dem ich mich schon länger rumschlage..<br />
Ich habe ein Programm geschrieben, bei dem ich in einer Funktion eine Matrix, sprich ein 2dimensionales Array erstelle. Diese Matrix möchte ich in der Main-Funktion anwenden, aber der Computer sagt &quot;q [also die Matrix] undeclared&quot;.<br />
Ich glaube, da kommen dann die Pointer ins Spiel, aber so genau kenne ich mich da nicht aus und auf anderen Internetseiten konnte ich auch nichts konkretes darüber finden.<br />
Es wäre nett, wenn mir jemand helfen könnte!</p>
<p>Ach ja, hier der Code, den ich bereits habe:<br />
Als Fuktion habe ich:<br />
(q und a sind btw auch zwei Matrizen, die ich in einer anderen Funktion definiert habe, bei denen ich dann das selbe Problem hab..)</p>
<p>//Funktion für Matrixmultiplikation<br />
double matrixmult (double q[][100], double a[][100], int dimbreit, int dimhoch)<br />
{<br />
int i, j, t;<br />
double r[100][100], variable[100], var;</p>
<p>for (i=0; i&lt;dimhoch; i++)<br />
{<br />
for (j=0; j&lt;dimbreit; j++)<br />
{<br />
for (t=0; t&lt;dimhoch-i; t++)<br />
{<br />
variable[t]=q[i][j+t]*a[i+t][j];<br />
var+=variable[t];<br />
}<br />
r[i][j]=var;<br />
}<br />
}<br />
return r[i][j];<br />
}</p>
<p>Und dann der Teil der Main-Funktion:</p>
<p>int m, n;</p>
<p>// R ausspucken<br />
for(m=0; m&lt;dimhoch; m++)<br />
{<br />
for (n=0;n&lt;dimbreit;n++)<br />
{<br />
cout&lt;&lt;&quot;Die Matrix R lautet:&quot;&lt;&lt;endl&lt;&lt;r[m][n]&lt;&lt;&quot; &quot;;<br />
}<br />
cout&lt;&lt;endl;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310640/arrays-mithilfe-von-pointern-von-funktionen-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 09:39:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310640.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Nov 2012 11:37:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arrays mithilfe von Pointern von Funktionen übergeben on Sat, 17 Nov 2012 11:37:54 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem, mit dem ich mich schon länger rumschlage..<br />
Ich habe ein Programm geschrieben, bei dem ich in einer Funktion eine Matrix, sprich ein 2dimensionales Array erstelle. Diese Matrix möchte ich in der Main-Funktion anwenden, aber der Computer sagt &quot;q [also die Matrix] undeclared&quot;.<br />
Ich glaube, da kommen dann die Pointer ins Spiel, aber so genau kenne ich mich da nicht aus und auf anderen Internetseiten konnte ich auch nichts konkretes darüber finden.<br />
Es wäre nett, wenn mir jemand helfen könnte!</p>
<p>Ach ja, hier der Code, den ich bereits habe:<br />
Als Fuktion habe ich:<br />
(q und a sind btw auch zwei Matrizen, die ich in einer anderen Funktion definiert habe, bei denen ich dann das selbe Problem hab..)</p>
<p>//Funktion für Matrixmultiplikation<br />
double matrixmult (double q[][100], double a[][100], int dimbreit, int dimhoch)<br />
{<br />
int i, j, t;<br />
double r[100][100], variable[100], var;</p>
<p>for (i=0; i&lt;dimhoch; i++)<br />
{<br />
for (j=0; j&lt;dimbreit; j++)<br />
{<br />
for (t=0; t&lt;dimhoch-i; t++)<br />
{<br />
variable[t]=q[i][j+t]*a[i+t][j];<br />
var+=variable[t];<br />
}<br />
r[i][j]=var;<br />
}<br />
}<br />
return r[i][j];<br />
}</p>
<p>Und dann der Teil der Main-Funktion:</p>
<p>int m, n;</p>
<p>// R ausspucken<br />
for(m=0; m&lt;dimhoch; m++)<br />
{<br />
for (n=0;n&lt;dimbreit;n++)<br />
{<br />
cout&lt;&lt;&quot;Die Matrix R lautet:&quot;&lt;&lt;endl&lt;&lt;r[m][n]&lt;&lt;&quot; &quot;;<br />
}<br />
cout&lt;&lt;endl;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271705</guid><dc:creator><![CDATA[Tanja.Pf]]></dc:creator><pubDate>Sat, 17 Nov 2012 11:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to Arrays mithilfe von Pointern von Funktionen übergeben on Sat, 17 Nov 2012 11:57:55 GMT]]></title><description><![CDATA[<p><a href="http://Tanja.Pf" rel="nofollow">Tanja.Pf</a> schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//Funktion für Matrixmultiplikation
double matrixmult (double q[][100], double a[][100], int dimbreit, int dimhoch)
</code></pre>
</blockquote>
<p>Sorry, aber das ist Käse hoch drei. Erstens ist das Ergebnis einer Matrixmultiplikation wieder eine Matrix und kein double. Zweitens ist double[][100] als Matrix-Typ eher unbrauchbar. Für kleine Matrizen verschwendest du damit Speicher und große Matrizen kannst du damit gar nicht darstellen. Hinzu kommt, dass rohe Arrays bzgl Übergabe an Funktionen und Rückgabe &quot;irregulär&quot; sind. Du kannst so ein Ding z.B. nicht zurück geben. Schöner wär auch eine Kapselung des Konzepts &quot;Matrix&quot;, so dass du die Größen (also Anzahl der Zeilen und Spalten) nicht separat übertragen musst. Das ist nämlich fehleranfällig so.</p>
<p>Siehe</p>
<p><a href="http://www.c-plusplus.net/forum/298454-full" rel="nofollow">http://www.c-plusplus.net/forum/298454-full</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271709</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 17 Nov 2012 11:57:55 GMT</pubDate></item></channel></rss>