<?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[Speicherzuweisung mehrdimensionales Array]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich möchte ein mehrdimensioneles Array erzeugen wobei die Dimensionen während der Laufzeit bestimmt werden. Zum Beispiel:</p>
<p>dim1, dim2, dim3 = f(a,b,c);</p>
<p>Und dann:</p>
<p>float array[dim1][dim2][dim3];</p>
<p>Wenn die Dimensionen im Bereich von ca. 4x4x4 sind funktioniert das Programm. Sobald die Dimensionen im Bereich von 100x100x100 liegen, bekomme ich einen &quot;Segmentation fault&quot;.</p>
<p>Da einige Arrays fünf oder mehr Dimensionen haben, möchte ich for-Schleifen vermeiden.</p>
<p>Wie müsste also eine Speicherzuweisung (z.B. mit malloc) aussehen, damit ich keine &quot;Segmentation fault&quot; bekomme?</p>
<p>Vielen Dank schon mal,<br />
Adrian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250691/speicherzuweisung-mehrdimensionales-array</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 22:36:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250691.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Sep 2009 15:42:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherzuweisung mehrdimensionales Array on Tue, 22 Sep 2009 15:42:06 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich möchte ein mehrdimensioneles Array erzeugen wobei die Dimensionen während der Laufzeit bestimmt werden. Zum Beispiel:</p>
<p>dim1, dim2, dim3 = f(a,b,c);</p>
<p>Und dann:</p>
<p>float array[dim1][dim2][dim3];</p>
<p>Wenn die Dimensionen im Bereich von ca. 4x4x4 sind funktioniert das Programm. Sobald die Dimensionen im Bereich von 100x100x100 liegen, bekomme ich einen &quot;Segmentation fault&quot;.</p>
<p>Da einige Arrays fünf oder mehr Dimensionen haben, möchte ich for-Schleifen vermeiden.</p>
<p>Wie müsste also eine Speicherzuweisung (z.B. mit malloc) aussehen, damit ich keine &quot;Segmentation fault&quot; bekomme?</p>
<p>Vielen Dank schon mal,<br />
Adrian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782674</guid><dc:creator><![CDATA[adriank]]></dc:creator><pubDate>Tue, 22 Sep 2009 15:42:06 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherzuweisung mehrdimensionales Array on Tue, 22 Sep 2009 15:54:38 GMT]]></title><description><![CDATA[<p>siehe <a href="http://www.boost.org/doc/libs/1_40_0/libs/multi_array/doc/index.html" rel="nofollow">Boost.MultiArray</a>.</p>
<p>...oder Du benutzt vector&lt;vector&lt;vector&lt;int&gt; &gt; &gt;</p>
<p>...oder Du baust Dir ein 3D-Array nach a la</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class array3d
{
   std::vector&lt;T&gt; elements_;
   std::size_t size1_;
   std::size_t size2_;
   std::size_t size3_;

public:
   explicit array3d(std::size_t s1=0, std::size_t s2=0, std::size_t s3=0);

   T      &amp; operator()(std::size_t i1,std::size_t i2,std::size_t i3);
   T const&amp; operator()(std::size_t i1,std::size_t i2,std::size_t i3) const;

   std::size_t size1() const;
   std::size_t size2() const;
   std::size_t size3() const;

   void swap(array3d &amp; with) {
     using std::swap;
     elements_.swap(with.elements_);
     swap(size1_, with.size1_);
     swap(size2_, with.size2_);
     swap(size3_, with.size3_);
   }

   array3d&amp; operator=(array3d x) {
     this-&gt;swap(x);
     return *this;
   }
};

template&lt;typename T&gt;
inline swap(array3d&lt;T&gt; &amp; a, array3d&lt;T&gt; &amp; b){a.swap(b);}
</code></pre>
<p>u.s.w.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782676</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Tue, 22 Sep 2009 15:54:38 GMT</pubDate></item></channel></rss>