<?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 in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion innerhalb einer Klasse mit folgender Schnittstelle implementieren:</p>
<pre><code>void DimacsGraph::GetPath(int s, int t, int** pathNodes, int* pathLenght) const;
</code></pre>
<p>Es geht um den dritten Parameter. Es soll ein Array von integern dort hineingeschrieben werden (innerhalb der funktion)</p>
<p>mein ansatz ist folgender (vereinfacht)</p>
<pre><code>void DimacsGraph::GetPath(int s, int t, int** pathNodes, int* pathLenght) const{
  int groesse=10;
  int daten=5
  *pathNodes=new int[groesse];
   for (int i=0;i&lt;groesse;i++){
      *pathNodes[i]=daten; //hier gibts den Segmentation Fault
   }
}

int main(){
  int** pathNodes = new int*;
  int* pathLength;
  DimacsGraph myGraph;
  myGraph.GetPath(1,1,pathNodes, pathLength);
}
</code></pre>
<p>Mir ist klar, dass offenbar irgendwelche Daten nicht initialisiert sind und somit ein Zeiger auf einen unerlaubten Bereich zeigt was zum Segfault führt.</p>
<p>Aber wie ist die richtige Möglichkeit, so etwas zu erreichen?</p>
<p>Vielen Dank für evtl. Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289589/array-in-klasse-dynamisch-erzeugen-und-einem-zuvor-übergebenen-zeiger-zuordnen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 02:53:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289589.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Jul 2011 13:02:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen on Fri, 08 Jul 2011 13:02:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Funktion innerhalb einer Klasse mit folgender Schnittstelle implementieren:</p>
<pre><code>void DimacsGraph::GetPath(int s, int t, int** pathNodes, int* pathLenght) const;
</code></pre>
<p>Es geht um den dritten Parameter. Es soll ein Array von integern dort hineingeschrieben werden (innerhalb der funktion)</p>
<p>mein ansatz ist folgender (vereinfacht)</p>
<pre><code>void DimacsGraph::GetPath(int s, int t, int** pathNodes, int* pathLenght) const{
  int groesse=10;
  int daten=5
  *pathNodes=new int[groesse];
   for (int i=0;i&lt;groesse;i++){
      *pathNodes[i]=daten; //hier gibts den Segmentation Fault
   }
}

int main(){
  int** pathNodes = new int*;
  int* pathLength;
  DimacsGraph myGraph;
  myGraph.GetPath(1,1,pathNodes, pathLength);
}
</code></pre>
<p>Mir ist klar, dass offenbar irgendwelche Daten nicht initialisiert sind und somit ein Zeiger auf einen unerlaubten Bereich zeigt was zum Segfault führt.</p>
<p>Aber wie ist die richtige Möglichkeit, so etwas zu erreichen?</p>
<p>Vielen Dank für evtl. Hinweise!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090310</guid><dc:creator><![CDATA[unimatrix27]]></dc:creator><pubDate>Fri, 08 Jul 2011 13:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen on Fri, 08 Jul 2011 13:11:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main(){
  int* pathNodes;
  int pathLength;
  DimacsGraph myGraph;
  myGraph.GetPath(1,1,&amp;pathNodes, &amp;pathLength);
}
</code></pre>
<p>Schlauer wäre natürlich ein std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090311</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 08 Jul 2011 13:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen on Fri, 08 Jul 2011 14:03:48 GMT]]></title><description><![CDATA[<p>@unimatrix:<br />
Der Index-Zugriff hat eine höhere Priorität als die Dereferenzierung, deswegen mußt du in deiner Konstellation Klammern setzen: <code>(*pathNodes)[i]=daten;</code> . Aber wie manni schon sagte, mit einer STL-Containerklasse bist du vermutlich besser bedient.</p>
<p>@manni: Dir ist schon klar, daß du damit das Problem nicht löst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090325</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 08 Jul 2011 14:03:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen on Fri, 08 Jul 2011 14:14:01 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>@manni: Dir ist schon klar, daß du damit das Problem nicht löst?</p>
</blockquote>
<p>Nein, bis gerade eben nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2090328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090328</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 08 Jul 2011 14:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array in Klasse dynamisch erzeugen und einem zuvor übergebenen Zeiger zuordnen on Fri, 08 Jul 2011 17:22:15 GMT]]></title><description><![CDATA[<p>hallo und danke für die schnellen antworten. Auf die Priorität hätte ich kommen müssen - jetzt ist es mir klar! Vielen Dank!</p>
<p>Das mit der STL ist mir eh klar, aber das Interface war so festgelegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090399</guid><dc:creator><![CDATA[unimatrix27]]></dc:creator><pubDate>Fri, 08 Jul 2011 17:22:15 GMT</pubDate></item></channel></rss>