<?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[2D-Array an Funktion mit std::vector übergeben]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich bin ein Neuling auf dem Gebiet C++ und habe schon meine ersten Probleme.</p>
<p>Ich habe in meinem Hauptprogramm (*.mql) ein 2D-Array unbestimmter Größe (string indicators[][])</p>
<p>Nun übergebe ich die Anfangsadresse(&amp;) des 2D-Arrays an meine .dll (DLL_Indicators())</p>
<p>Die DLL sieht so aus:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;test.h&quot;

#include &lt;string&gt;
#include &lt;cstring&gt;
#include &lt;mysql++.h&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;

using namespace std;

struct MqlStr {
	char* string;
	int len;
};

MT4_EXPFUNC void __stdcall DLL_Indicators(vector&lt; vector&lt;MqlStr&gt; &gt; &amp; Result)
{
    for(int = 0; i &lt; MysqlRows; i++) {
	Result[i][0].string = &quot;Indicator Name&quot;;
         Result[i][1].string = &quot;Indicator Wert&quot;;
    }
}
</code></pre>
<p>Wie man sieht möchte ich dann in meiner DLL Elemente dem 2D-Array aus meine .mql hinzufügen, je nachdem wieviel Ergebnisse die Mysql findet.</p>
<p>Ich steh voll an, was mach ich falsch?</p>
<p>Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293196/2d-array-an-funktion-mit-std-vector-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 11:39:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293196.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Sep 2011 13:52:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 13:54:55 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich bin ein Neuling auf dem Gebiet C++ und habe schon meine ersten Probleme.</p>
<p>Ich habe in meinem Hauptprogramm (*.mql) ein 2D-Array unbestimmter Größe (string indicators[][])</p>
<p>Nun übergebe ich die Anfangsadresse(&amp;) des 2D-Arrays an meine .dll (DLL_Indicators())</p>
<p>Die DLL sieht so aus:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;test.h&quot;

#include &lt;string&gt;
#include &lt;cstring&gt;
#include &lt;mysql++.h&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;

using namespace std;

struct MqlStr {
	char* string;
	int len;
};

MT4_EXPFUNC void __stdcall DLL_Indicators(vector&lt; vector&lt;MqlStr&gt; &gt; &amp; Result)
{
    for(int = 0; i &lt; MysqlRows; i++) {
	Result[i][0].string = &quot;Indicator Name&quot;;
         Result[i][1].string = &quot;Indicator Wert&quot;;
    }
}
</code></pre>
<p>Wie man sieht möchte ich dann in meiner DLL Elemente dem 2D-Array aus meine .mql hinzufügen, je nachdem wieviel Ergebnisse die Mysql findet.</p>
<p>Ich steh voll an, was mach ich falsch?</p>
<p>Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124352</guid><dc:creator><![CDATA[tomplank]]></dc:creator><pubDate>Tue, 27 Sep 2011 13:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 14:28:35 GMT]]></title><description><![CDATA[<p>Ich habe keine Ahnung, was *.mql für ein Typ von ausführbarer Datei sein soll, aber ich bin mit ziemlich sicher, dass das <code>string indicators[][]</code> aus Deinem Programm ein völlig anderer Typ ist, als <code>vector&lt;vector&lt;MqlStr&gt; &gt; &amp;</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124373</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 27 Sep 2011 14:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 15:16:42 GMT]]></title><description><![CDATA[<p>Hallo und danke,</p>
<p>mit folgendem Code kann ich auf das Array bearbeiten, also müsste ein Vector auf das 2D-Array auch möglich sein, oder?</p>
<pre><code class="language-cpp">MT4_EXPFUNC void __stdcall DLL_Indicators(MqlStr Result[][2]) 
{ 
    for(int = 0; i &lt; MysqlRows; i++) { 
         Result[i][0].string = &quot;Indicator Name&quot;; 
         Result[i][1].string = &quot;Indicator Wert&quot;; 
    } 
}
</code></pre>
<p>jedoch muss ich somit die Größe des zweiten Feldes angeben, und das kann ich aber im vorhinein nicht.</p>
<p>Gibt es sonst vlt eine andere Lösung um die Größe des Arrays dynamisch zu ändern?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124396</guid><dc:creator><![CDATA[tomplank]]></dc:creator><pubDate>Tue, 27 Sep 2011 15:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 17:12:01 GMT]]></title><description><![CDATA[<p>bitte um hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124428</guid><dc:creator><![CDATA[tomplank]]></dc:creator><pubDate>Tue, 27 Sep 2011 17:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 18:20:58 GMT]]></title><description><![CDATA[<p>Nach zwei Stunden musst du deinen Beitrag noch nicht pushen. Hab ein wenig Geduld.</p>
<p>Ich verstehe deine Fragestellung nicht ganz, aber du scheinst Arrays und die <code>std::vector</code> -Klasse durcheinander zu bringen. Ein eindimensionaler <code>std::vector</code> kann zwar als dynamisches Array angeschaut werden (d.h. alle Elemente hintereinander im Speicher), aber das kannst du nicht so einfach verallgemeinern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124446</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 27 Sep 2011 18:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 19:02:09 GMT]]></title><description><![CDATA[<p>Danke,</p>
<p>es muss doch aber irgendwie gehen, dass ich die adresse eines zero-sized arrays demvector zuweise und mit dem vector weiterarbeite?</p>
<p>oder lieg ich da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124467</guid><dc:creator><![CDATA[tomplank]]></dc:creator><pubDate>Tue, 27 Sep 2011 19:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 20:34:52 GMT]]></title><description><![CDATA[<p>tomplank schrieb:</p>
<blockquote>
<p>es muss doch aber irgendwie gehen, dass ich die adresse eines zero-sized arrays demvector zuweise und mit dem vector weiterarbeite?</p>
</blockquote>
<p>Automatisch geht das nicht, da mußt du schon von Hand die einzelnen Zeilen des Arrays in den vector&lt;&gt; reinbeamen. Die Größe mußt du entweder direkt setzen (im Construktor oder per resize()) oder du verwendest push_back() oder insert() zum Füllen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124513</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 27 Sep 2011 20:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 22:01:01 GMT]]></title><description><![CDATA[<p>Danke, aber wenn ich ein zero sized array an die funktion übergebe, habe ich ja nichts um den vector zu füllen.</p>
<p>Mein ziel ist es die Mysql ergebnisse in einem vector zu speichern und diesen dann per call-by-reference an mein bislang zero sized array zurückzugeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124534</guid><dc:creator><![CDATA[tomplank]]></dc:creator><pubDate>Tue, 27 Sep 2011 22:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to 2D-Array an Funktion mit std::vector übergeben on Tue, 27 Sep 2011 22:09:38 GMT]]></title><description><![CDATA[<p>Was soll denn ein &quot;zero sized array&quot; überhaupt sein? In C++ haben Arrays grundsätzlich eine feste Größe, die dem Compiler auch bekannt ist (können aber in den meisten Fällen auch implizit in einen Zeiger umgewandelt werden). Arrays mit zur Laufzeit festgelegter Größe (VLA) gibt es nur unter C99 (und selbst da bin ich nicht sicher, ob es auch für mehrdimensionale Arrays funktioniert).</p>
<p>PS: Und was die Herkunft der Daten angeht, da hängt es von der SQL-Library ab, was unterstützt bzw. zurückgegeben wird. Wenn es eine C-basierte Library ist, hast du vermutlich mehrdimensionale char*-Arrays in der Hand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124537</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 27 Sep 2011 22:09:38 GMT</pubDate></item></channel></rss>