<?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-Doppelzeiger-Funktionsparameter?????]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich hab hier ne funktion die ich dringend für ein programm brauche:</p>
<pre><code class="language-cpp">int eigen (..., REAL ** mat, ...);
</code></pre>
<p>dem doppelzeiger möchte/muss ich nun eine n x n Matrix übergeben. Das hab ich dann auch mehr oder weniger kompliziert hingekriegt,</p>
<pre><code class="language-cpp">REAL matrix[2][2] = {5, 0,
                     5, 5};

double * ptr=matrix[0];
double ** ptrptr = &amp;ptr;
</code></pre>
<p>indem ich dann einfach ptrptr übergebe, aber in der Funktion scheitere ich dann an dieser schleife</p>
<pre><code class="language-cpp">for (i = 0; i &lt; n; i++)
    if (mat[i] == NULL) return (1);          //PROBLEM !!!!!!!!!!!!!!!!!!!!!!!!
</code></pre>
<p>ich komm bei den ganzen dimensionen und (de)referenzierungen nicht mehr ganz mit und wäre für sachliche hinweise recht dankbar.</p>
<p>gruß christian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147009/array-doppelzeiger-funktionsparameter</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 23:34:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147009.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 May 2006 19:27:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Fri, 12 May 2006 19:27:53 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>ich hab hier ne funktion die ich dringend für ein programm brauche:</p>
<pre><code class="language-cpp">int eigen (..., REAL ** mat, ...);
</code></pre>
<p>dem doppelzeiger möchte/muss ich nun eine n x n Matrix übergeben. Das hab ich dann auch mehr oder weniger kompliziert hingekriegt,</p>
<pre><code class="language-cpp">REAL matrix[2][2] = {5, 0,
                     5, 5};

double * ptr=matrix[0];
double ** ptrptr = &amp;ptr;
</code></pre>
<p>indem ich dann einfach ptrptr übergebe, aber in der Funktion scheitere ich dann an dieser schleife</p>
<pre><code class="language-cpp">for (i = 0; i &lt; n; i++)
    if (mat[i] == NULL) return (1);          //PROBLEM !!!!!!!!!!!!!!!!!!!!!!!!
</code></pre>
<p>ich komm bei den ganzen dimensionen und (de)referenzierungen nicht mehr ganz mit und wäre für sachliche hinweise recht dankbar.</p>
<p>gruß christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056761</guid><dc:creator><![CDATA[Riddler.2nd.try]]></dc:creator><pubDate>Fri, 12 May 2006 19:27:53 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Fri, 12 May 2006 19:45:46 GMT]]></title><description><![CDATA[<p>Ich benutze mehrdimensionale Arrays nicht so oft, aber müsste es nicht</p>
<pre><code class="language-cpp">REAL matrix[2][2] = {
                        {5, 0},
                        {5, 5}
                     };

double ** ptrptr = matrix;
</code></pre>
<p>heißen?</p>
<p>Wann genau kommt der Fehler, wie lautet er (möglicherweise ein Segfault?!) und was steht in n?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056767</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Fri, 12 May 2006 19:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Fri, 12 May 2006 20:16:33 GMT]]></title><description><![CDATA[<p>ein pointer auf pointer hat nichts mit 2-dimensionalen matrizen zu tun - auch wenn der zugriff in beiden fällen mittels indexoperators dieselbe form hat.</p>
<p>ein array<br />
int foo[4][2]<br />
degeneriert in einen pointer<br />
int (*p)[2]<br />
dieser pointer zeigt auf ein array und eben nicht auf einen weiteren pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056782</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 12 May 2006 20:16:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Fri, 12 May 2006 21:01:00 GMT]]></title><description><![CDATA[<p>danke für die schnellen antworten.</p>
<p>das mit</p>
<pre><code class="language-cpp">double ** ptrptr = matrix;
</code></pre>
<p>funktioniert nicht. hab ich auch schon ausprobiert, dann krieg ich nur den hier:</p>
<pre><code>cannot convert from 'double [9][9]' to 'double **
</code></pre>
<p>der fehler ist nicht, dass windows das programm abricht, sondern die funktion aufgrund falsch übergebener parameter abbricht. und der abbruch geschieht genau hier</p>
<pre><code class="language-cpp">for (i = 0; i &lt; n; i++)
    if (mat[i] == NULL) return (1);          // &lt;- return to main
</code></pre>
<p>das n steht für die anzahl der Zeilen bzw. spalten (n x n matrix). hier werden wohl ein array mit zeigern auf die spalten/zeilen erwartet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    />, und ich hätte eigentlich auch gedacht, dass ich eben solche übergeben hätte. aufgrund des abbruchs ist dem aber wohl nicht so.</p>
<p>es mag zwar sein, dass doppelzeiger nicht viel mit 2d-arrays zu tun haben. aber irgendwie muss doch ein sinnvoller und in diesem fall funktioniernder zusammenhang zwischen</p>
<pre><code class="language-cpp">**mat und mat[][]
</code></pre>
<p>herzustellen sein. der autor dieser funktion hats ja anscheinend auch irgendwie geschafft und wird sich sicher auch seine gedanken zu dieser art von übergabe gemacht haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1056806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056806</guid><dc:creator><![CDATA[riddler.2nd.try]]></dc:creator><pubDate>Fri, 12 May 2006 21:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Fri, 12 May 2006 22:41:50 GMT]]></title><description><![CDATA[<p>du benötigst eine zweite matrix, die die benötigten zeiger auf die spalten der 2dimensionalen matrix enthält. etwa</p>
<pre><code class="language-cpp">REAL matrix[2][2] = {
                        {5, 0},
                        {5, 5}
                     };
REAL* spalten[] = { &amp;matrix[0], &amp;matrix[1] };
double ** ptrptr = spalten;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1056834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056834</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 12 May 2006 22:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to Array-Doppelzeiger-Funktionsparameter????? on Sat, 13 May 2006 12:12:00 GMT]]></title><description><![CDATA[<p>ja, das hört sich für mich auch ganz logisch an, aber ich krieg dann trotzdem wieder fehlermeldungen vom compiler.</p>
<p>hab das problem jetzt so gelöst, das ich mit einer anderen bibliotheksfkt eine matrix in form eines doppelzeigers erzeuge und in diese dann per hand meine gegebene matrix kopiere, ohne irgendwelche doppelzeiger fktparameter.</p>
<p>danke trotzdem für die schnelle hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1057012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1057012</guid><dc:creator><![CDATA[riddler.2nd.try]]></dc:creator><pubDate>Sat, 13 May 2006 12:12:00 GMT</pubDate></item></channel></rss>