<?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[Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex*]]></title><description><![CDATA[<p>Ich habe meine Arrays als</p>
<pre><code class="language-cpp">vector&lt;vector&lt;CComplex&gt; &gt;
</code></pre>
<p>definiert und möchte diese an eine Funktion FFT2D übergeben, die als Eingabe erwartet:</p>
<pre><code class="language-cpp">void FFT2D(CComplex *E,CComplex *S,long N,long sd)
</code></pre>
<p>Ich habe es mit probiert mit (CComplex*)m_W und &amp;m_F</p>
<pre><code class="language-cpp">FFT2D((CComplex*)m_W,&amp;m_F,N,1);
</code></pre>
<p>was mir aber nur die Fehlermeldungen liefert:</p>
<blockquote>
<p>\AdaptiveAlgorithm.cpp(292) : error C2440: 'Typumwandlung': 'std::vector&lt;_Ty&gt;' kann nicht in 'CComplex *' konvertiert werden<br />
1&gt; with<br />
1&gt; [<br />
1&gt; _Ty=std::vector&lt;CComplex&gt;<br />
1&gt; ]<br />
1&gt; Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
1&gt;.\AdaptiveAlgorithm.cpp(312) : error C2664: 'FFT2D': Konvertierung des Parameters 1 von 'std::vector&lt;_Ty&gt; *__w64 ' in 'CComplex *' nicht möglich<br />
1&gt; with<br />
1&gt; [<br />
1&gt; _Ty=std::vector&lt;CComplex&gt;<br />
1&gt; ]<br />
1&gt; Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.<br />
1&gt;Das Buildprotokoll wurde unter &quot;file://e:\Daten\Dev\Cpp\LightModulator2DMat\LightModulator2D\Debug\BuildLog.htm&quot; gespeichert.</p>
</blockquote>
<p>wie konvertiere ich das Datenformat, so dass es passt?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180500/parameter-konvertierung-von-vector-lt-vector-lt-ccomplex-gt-gt-nach-complex</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 22:07:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180500.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 May 2007 14:11:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Thu, 03 May 2007 14:11:47 GMT]]></title><description><![CDATA[<p>Ich habe meine Arrays als</p>
<pre><code class="language-cpp">vector&lt;vector&lt;CComplex&gt; &gt;
</code></pre>
<p>definiert und möchte diese an eine Funktion FFT2D übergeben, die als Eingabe erwartet:</p>
<pre><code class="language-cpp">void FFT2D(CComplex *E,CComplex *S,long N,long sd)
</code></pre>
<p>Ich habe es mit probiert mit (CComplex*)m_W und &amp;m_F</p>
<pre><code class="language-cpp">FFT2D((CComplex*)m_W,&amp;m_F,N,1);
</code></pre>
<p>was mir aber nur die Fehlermeldungen liefert:</p>
<blockquote>
<p>\AdaptiveAlgorithm.cpp(292) : error C2440: 'Typumwandlung': 'std::vector&lt;_Ty&gt;' kann nicht in 'CComplex *' konvertiert werden<br />
1&gt; with<br />
1&gt; [<br />
1&gt; _Ty=std::vector&lt;CComplex&gt;<br />
1&gt; ]<br />
1&gt; Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden<br />
1&gt;.\AdaptiveAlgorithm.cpp(312) : error C2664: 'FFT2D': Konvertierung des Parameters 1 von 'std::vector&lt;_Ty&gt; *__w64 ' in 'CComplex *' nicht möglich<br />
1&gt; with<br />
1&gt; [<br />
1&gt; _Ty=std::vector&lt;CComplex&gt;<br />
1&gt; ]<br />
1&gt; Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.<br />
1&gt;Das Buildprotokoll wurde unter &quot;file://e:\Daten\Dev\Cpp\LightModulator2DMat\LightModulator2D\Debug\BuildLog.htm&quot; gespeichert.</p>
</blockquote>
<p>wie konvertiere ich das Datenformat, so dass es passt?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278145</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Thu, 03 May 2007 14:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Thu, 03 May 2007 15:51:19 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich falle Dir hoffentlich nicht auf die Nerven, wenn ich schon wieder antworte (vielleicht korrigieren/ergänzen mich ja auch Andere).... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Ist doch ganz einfach:</p>
<pre><code class="language-cpp">FFT2D(&amp;m_W[0][0],&amp;&amp;m_F[0][0],N,1);
</code></pre>
<p><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>Aber Du willst vermutlich nicht einfach die Adresse des ersten Elements, sondern in FFT2D() sowas wie &quot;Pointerarithmetik&quot; machen, also auf alle Elemente sukkzessive zugreifen, oder ?</p>
<p>Wenn, dann wird das, was Du willst, wird nicht mit einem noch so geschickten cast funktionieren, weil es sich einfach (schon von der Speicherrepräsentation her) um ganz andere Objekte handelt (ähnlich wie beim extract <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>Mal zur Veranschaulichung:</p>
<pre><code class="language-cpp">Beim vector&lt;vector&lt;CComplex&gt; &gt; sieht es vereinfacht folgendermaßen aus:
class vector&lt;CComplex&gt; {
   CComplex* ptr;
   size_t size;
public:
   vector&lt;CComplex&gt;(size_t cap) : ptr(new CComplex[cap]), size(cap) {}
   // ....
};
// Hier werden also cap-viele CComplexs IRGENDWO hintereinander in den Speicher gelegt;

class vector&lt;vector&lt;CComplex&gt; &gt; {
   vector&lt;CComplex&gt;* ptr;
   size_t size;
public:
   vector&lt;vector&lt;CComplex&gt; &gt;(size_t cap) : ptr(new vector&lt;CComplex&gt;[cap]), size(cap) {}
   // ....
};
// Hier werden also cap-viele vector&lt;CComplex&gt; IRGENDWO hintereinander in den Speicher gelegt;
</code></pre>
<p>Jetzt nehmen wir mal an, wir legen einen 3 vector&lt;CComplex&gt; in unseren vector&lt;vector&lt;CComplex&gt; &gt;, dann bekommt das Programm vielleicht folgende Positionen zugewiesen (beim new - je nachdem, wo die Runtime gerade Platz hat):</p>
<pre><code class="language-cpp">0x100    -&gt; hier beginnt 1.vector&lt;CComplex&gt;
0x300    -&gt; hierhin zeigt 1.vector&lt;CComplex&gt;.ptr
0x1000   -&gt; hier beginnt 2.vector&lt;CComplex&gt;
0x1300   -&gt; hierhin zeigt 2.vector&lt;CComplex&gt;.ptr
0x5000   -&gt; hier beginnt 2.vector&lt;CComplex&gt;
0x5300   -&gt; hierhin zeigt 2.vector&lt;CComplex&gt;.ptr
0x15000  -&gt; vector&lt;vector&lt;CComplex&gt; &gt;
</code></pre>
<p>Deine &quot;CComplexdaten&quot; liegen also verteilt hinter 0x300, 0x1300 und 0x5300 und vector&lt;vector&lt;CComplex&gt; &gt; wiederum liegt bei 0x15000...</p>
<p>Deine Funktion wird aber erwarten, dass sich alle CComplex-Daten in einem Block an 0x15000 befinden.</p>
<p>Auch hier gilt leider: &quot;Falscher Container für die API&quot; <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="😉"
    /> entweder musst Du also umkopieren oder gleich mit einerm anderen Container arbeiten.</p>
<p>Ich schau mal, ob ich das &quot;knackig kopiert&quot; bekomme....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278197</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 03 May 2007 15:51:19 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Thu, 03 May 2007 16:41:36 GMT]]></title><description><![CDATA[<p>Das</p>
<pre><code class="language-cpp">vector&lt; vector&lt;CComplex&gt; &gt;
</code></pre>
<p>würde ich mal als eine komplexe Matrix bezeichnen.</p>
<pre><code class="language-cpp">void FFT2D(CComplex *E,CComplex *S,long N,long sd)
</code></pre>
<p>Ich rate mal das es um quadratische Matrizen geht und N die Dimension ist.<br />
Ferner rate ich dass Du nicht einefach die Funktion umschreiben kannst, so dass sie</p>
<pre><code class="language-cpp">void FFT2D(vector&lt; vector&lt;CComplex&gt; &gt;&amp; E,vector&lt; vector&lt;CComplex&gt; &gt;&amp; S, long N, long sd)
</code></pre>
<p>Sind meine Vorannahmen richtig?</p>
<p>Gut:<br />
- Complex foo[m][n] ist kein Complex** sondern ein Complex* der auf eine Sequenz von m<em>n Complex Instanzen zeigt.<br />
- Ein std::vector ist kein Array; er tut nur so mittels operator[](/</em>**/)</p>
<p>Die Funktion erwartet wohl einen CComplex* der auf N*N Objekte zeigt.</p>
<p>Dann tu ihm den Gefallen und</p>
<p>Kopier die Matrixelemente hin und zurück in/aus einen/m Speicherbereich wie das API sich das wünscht.<br />
Das ist natürlich per-se inperformat.</p>
<p>Irgendwie hab ich gerade hierüber nachgedacht</p>
<pre><code class="language-cpp">template&lt;&gt; 
class std::vector&lt; std::vector&lt;CComplex&gt; &gt; {
    /* 
       Dereferenz-, cast-Operatoren-, Zugriffsoperatoren;
    */
}
</code></pre>
<p>aber darüber kriegt ggf. man die Zeigerarithmeitk in der Funktion nicht klein</p>
<p>Was mir noch einfallen würde ist ein eigener Allokator der ggf im Verbund mit der Templatespezialisierung (Oder einer eigenen Klasse mit solchen ops) arbeitet und die Objekte tatsaächlich geeignet im Speicher plaziert.</p>
<p>Grüsse</p>
<p>Gast++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278236</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 03 May 2007 16:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 11:09:09 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>Das</p>
<pre><code class="language-cpp">vector&lt; vector&lt;CComplex&gt; &gt;
</code></pre>
<p>würde ich mal als eine komplexe Matrix bezeichnen.</p>
<pre><code class="language-cpp">void FFT2D(CComplex *E,CComplex *S,long N,long sd)
</code></pre>
<p>Ich rate mal das es um quadratische Matrizen geht und N die Dimension ist.<br />
Ferner rate ich dass Du nicht einefach die Funktion umschreiben kannst, so dass sie</p>
<pre><code class="language-cpp">void FFT2D(vector&lt; vector&lt;CComplex&gt; &gt;&amp; E,vector&lt; vector&lt;CComplex&gt; &gt;&amp; S, long N, long sd)
</code></pre>
<p>Sind meine Vorannahmen richtig?</p>
</blockquote>
<p>Ja.</p>
<p>Das Problem - ich habe die Funktion gerade von normalen Arrays geändert zu vector arrays weil ich nur dann die Größe zur Laufzeit festlegen kann (sehe ich doch richtig oder?).<br />
Das ich mit der FFT damit ein Problem bekomme hatte ich nicht bedacht. Diese Funktion ist mehr oder weniger in C und selbstgeschrieben, aber nicht von mir.</p>
<p>Jetzt könnte ich natürlich auch auf eine FFT Klasse für C++ ausweichen die andere Arrays aktzeptiert. Das Problem ist nur, dass ich die nicht habe.<br />
Gibt es soetwas ? Also speziell FFT Bibliotheken für C++<br />
Kenn bislang nur FFTW (noch nicht benutzt) das aber meines Wissens auch in C geschrieben ist und damit keine vector arrays aktzeptiert.</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278689</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Fri, 04 May 2007 11:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 11:25:01 GMT]]></title><description><![CDATA[<p>vector ist an sich nicht das Problem. Du müsstest einen vector&lt;Complex&gt; verwenden und die 2D-Adressierung von Hand vornehmen. Oder dir eine Klasse drumherum stricken, die dir das abnimmt. Nur mal zum Vergleich, Complex** wär auch nicht gegangen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278703</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 04 May 2007 11:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 13:41:48 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>vector ist an sich nicht das Problem. Du müsstest einen vector&lt;Complex&gt; verwenden und die 2D-Adressierung von Hand vornehmen.</p>
</blockquote>
<p>Was bringt mir ein vector&lt;Complex&gt; ? Das wäre doch nur eindimensional.</p>
<p>Bashar schrieb:</p>
<blockquote>
<p>Nur mal zum Vergleich, Complex** wär auch nicht gegangen ...</p>
</blockquote>
<p>Klar.</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278806</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Fri, 04 May 2007 13:41:48 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 18:55:30 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Du könntest wieder mit copy arbeiten und einen Helper benutzen:</p>
<pre><code class="language-cpp">class CopyHelper {
	int* arr;
	size_t const maxLen;
	size_t size;
public:
	typedef vector&lt;int&gt; const&amp; const_reference;
	CopyHelper(int* a, size_t m) : arr(a), maxLen(m), size(0) {}
	void push_back(const_reference v) {
		if(size + v.size() &gt;= maxLen) throw out_of_range(&quot;CopyHelper&quot;);
		copy(v.begin(), v.end(), arr+size);
		size += v.size();
	}
};	

int main() {
	size_t const maxLen = 10;
	vector&lt;vector&lt;int&gt; &gt; vec;
	int arr[maxLen];
	CopyHelper helper(arr, maxLen);

// ... vector&lt;vector&lt;int&gt; &gt; wird gefüllt:

	copy(vec.begin(), vec.end(), back_inserter(helper));

	return 0;
}
</code></pre>
<p>Geht eigentlich gar nicht schlecht ... CopyHelper könnte man natürlich auch als template bauen - aber Achtung: back_insert_iterator (und damit auch back_inserter) braucht den typedef const_reference.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278958</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 04 May 2007 18:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 20:04:13 GMT]]></title><description><![CDATA[<p>Sehe ich es richtig, dass ich bei allen Lösungen die ein vector Array beliebieger Größe in ein C-Array kopieren die Größe des C-Arrays schon zur Compilierzeit festgelegt haben muss?<br />
Das war gerade der Grund warum ich ein vector array genommen habe.</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278982</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Fri, 04 May 2007 20:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Fri, 04 May 2007 23:03:26 GMT]]></title><description><![CDATA[<p>pospiech schrieb:</p>
<blockquote>
<p>Sehe ich es richtig, dass ich bei allen Lösungen die ein vector Array beliebieger Größe in ein C-Array kopieren die Größe des C-Arrays schon zur Compilierzeit festgelegt haben muss?<br />
Matthias</p>
</blockquote>
<p>Aber nein:</p>
<pre><code class="language-cpp">unsigned int N = 0;
cin &gt;&gt; N;
/*
 * Hinten ECKIGE Klammern verwenden!
 *
 * Sonst ist's ein ctor-Aufruf 
 * für EIN Complex mit einem uint
 * als Argument
 */
Complex* p = new Complex[N];
//..
delete[] p;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1279052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279052</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Fri, 04 May 2007 23:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Sat, 05 May 2007 06:13:38 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">unsigned int N = 0;
cin &gt;&gt; N;
Complex* p = new Complex[N];
//..
delete[] p;
</code></pre>
</blockquote>
<p>Ich hätte vielleicht dazu sagen sollen, dass ich 2-dimensionale Arrays habe.<br />
Und mit</p>
<pre><code class="language-cpp">int (*pArr)[N]; // im Header
pArr = new int[N][N]; // im Konstruktor der CPP Datei
</code></pre>
<p>Muss die Größe zur Laufzeit dann doch bekannt sein.<br />
Wenn ich nur</p>
<pre><code class="language-cpp">int (*pArr)[N] = new int[N][N]
</code></pre>
<p>verwende sollte es gehen, dann ist aber mein Array nicht innerhalb der ganzen Klasse bekannt. Oder sehe ich den richtigen Weg einfach nur nicht ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279110</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Sat, 05 May 2007 06:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Sat, 05 May 2007 09:01:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde, ehrlich gesagt, 2D-Arrays nur dann nutzen, wenn es unbedingt sein müsste - und dann möglichst nicht mit vector&lt;vector&lt;&gt; &gt; mischen.<br />
Letztlich eben genau deswegen, weil Arraydimensionen (zumindestens alle bis auf eine) zur Compilezeit (ich denke, Du meintest da nicht wirklich &quot;Laufzeit&quot;, oder ? <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="😉"
    /> ) festgelegt sein muss....<br />
Wenn Du es unbedingt brauchst, solltest Du mit meinem Ansatz (CopyHelper) eigentlich ganz gut klar kommen, denn im Speicher sind 2D-Arrays auch nur sequentielle Daten und der Compiler weiß einfach, wohin er &quot;springen&quot; muss.<br />
Deswegen klappt auch Folgendes:</p>
<pre><code class="language-cpp">void fillArr(int* arr) {
    for(int i=0; i&lt;6; ++i) arr[i]=i;
}    

int main() {
    int arr[2][3];
    fillArr(&amp;arr[0][0]);
    cout &lt;&lt; arr[0][0] &lt;&lt; &quot; &quot; &lt;&lt; arr[0][1] &lt;&lt; &quot; &quot; &lt;&lt; arr[0][2] &lt;&lt; &quot;\n&quot;;
    cout &lt;&lt; arr[1][0] &lt;&lt; &quot; &quot; &lt;&lt; arr[1][1] &lt;&lt; &quot; &quot; &lt;&lt; arr[1][2] &lt;&lt; &quot;\n&quot;;
    return 0;
}
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279164</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 05 May 2007 09:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter Konvertierung von vector&amp;lt;vector&amp;lt;CComplex&amp;gt; &amp;gt; nach Complex* on Sat, 05 May 2007 10:33:28 GMT]]></title><description><![CDATA[<p>pospiech schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">unsigned int N = 0;
cin &gt;&gt; N;
Complex* p = new Complex[N];
//..
delete[] p;
</code></pre>
</blockquote>
<p>Ich hätte vielleicht dazu sagen sollen, dass ich 2-dimensionale Arrays habe.</p>
</blockquote>
<p>Das war mir jetzt schon klar...</p>
<p>Dann nimmt Du eben N*N:</p>
<pre><code class="language-cpp">Complex* p = new Complex[N*N];
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Das ist im Speciher das gleiche wie Complex p[N][N], nur dass Du's halt zur Laufzeit angeben kannst.</p>
<p><em>Das ist immer nur eine Folge von Complex-Instanzen die hintereinander im Speicher liegen!</em></p>
<p>Und zwar <strong>ab</strong> der Adresse p. Und das willst Du ja auch für FFT2D haben, oder?</p>
<p>Falls Du nen Stroustrup C++PL 4.Auflage hast lies mal §C.7 - Prof. Stroustrup erklärt das sicherlich besser als ich.</p>
<p>Happy Hacking!</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279195</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Sat, 05 May 2007 10:33:28 GMT</pubDate></item></channel></rss>