<?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[Wie übergebe ich ein Array bzw. Pointer als Parameter?]]></title><description><![CDATA[<p>Hallo zusammen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich bin noch absoluter Neuling auf dem gebiet C++ und habe über die Sufu keinen dementsprechenden Eintrag gefunden...<br />
Nun zu meinem Problem:<br />
Ich möchte gerne ein Array, bzw. einen Pointer auf das Array als Parameter an eine andere Funktion übergeben.<br />
Wie stelle ich das an? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Ich fülle in meinem Testcode 6 zufällig generierte zahlen in das entsprechende Array....</p>
<pre><code class="language-cpp">#include &quot;main.h&quot;
#include &lt;iostream&gt;
#include &lt;time.h&gt;

using namespace std;

void main()
{
	vZufallsGenerator();
	vAusgabe();
	system(&quot;pause&quot;);
}

void vZufallsGenerator()
{
	int iArray[6];
	srand ((unsigned)time(NULL)); 

	for (int i=0; i&lt;=5; i++)
	{
		iArray[i] = rand() % 41 +1; 
	}

	int *pointer; 
	pointer = iArray; 
}

int iAusgabe()
{
}
</code></pre>
<p>Wie bekomme ich den Pointer jetzt in die Ausgabe-Funktion um die Zahlen per cout auszugeben? <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="😕"
    /></p>
<p>Ich freue mich auf Hilfe <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292755/wie-übergebe-ich-ein-array-bzw-pointer-als-parameter</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 17:27:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292755.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Sep 2011 00:59:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie übergebe ich ein Array bzw. Pointer als Parameter? on Sat, 17 Sep 2011 00:59:55 GMT]]></title><description><![CDATA[<p>Hallo zusammen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich bin noch absoluter Neuling auf dem gebiet C++ und habe über die Sufu keinen dementsprechenden Eintrag gefunden...<br />
Nun zu meinem Problem:<br />
Ich möchte gerne ein Array, bzw. einen Pointer auf das Array als Parameter an eine andere Funktion übergeben.<br />
Wie stelle ich das an? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Ich fülle in meinem Testcode 6 zufällig generierte zahlen in das entsprechende Array....</p>
<pre><code class="language-cpp">#include &quot;main.h&quot;
#include &lt;iostream&gt;
#include &lt;time.h&gt;

using namespace std;

void main()
{
	vZufallsGenerator();
	vAusgabe();
	system(&quot;pause&quot;);
}

void vZufallsGenerator()
{
	int iArray[6];
	srand ((unsigned)time(NULL)); 

	for (int i=0; i&lt;=5; i++)
	{
		iArray[i] = rand() % 41 +1; 
	}

	int *pointer; 
	pointer = iArray; 
}

int iAusgabe()
{
}
</code></pre>
<p>Wie bekomme ich den Pointer jetzt in die Ausgabe-Funktion um die Zahlen per cout auszugeben? <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="😕"
    /></p>
<p>Ich freue mich auf Hilfe <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120342</guid><dc:creator><![CDATA[YamiNoKage]]></dc:creator><pubDate>Sat, 17 Sep 2011 00:59:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wie übergebe ich ein Array bzw. Pointer als Parameter? on Sat, 17 Sep 2011 01:41:12 GMT]]></title><description><![CDATA[<p>Ich nehme mal an, dass main.h die Deklarationen der Funktionen vZufallsGenerator und iAusgabe enthält. Grundlegend musst du, um etwas als Parameter an eine Funktion zu geben, es erstens im aufrufenden Kontext haben und zweitens die Funktion so schreiben, dass sie den Parameter auch entgegen nimmt. Beides ist in deinem Code nicht der Fall.</p>
<p>Man könnte das beispielsweise so anfangen:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;ctime&gt;
#include &lt;iostream&gt;

void make_random_numbers(int *dest, std::size_t dest_len) {
  for(std::size_t i = 0; i &lt; dest_len; ++i) {
    dest[i] = std::rand() % 41 + 1;
  }
}

void print_random_numbers(int const *numbers, std::size_t len) {
  for(std::size_t i = 0; i &lt; dest_len; ++i) {
    std::cout &lt;&lt; numbers[i] &lt;&lt; '\n';
  }
}

int main() { // main muss int zurückgeben!
  std::srand(std::time(0));

  int numbers[6];
  make_random_numbers(numbers, 6);
  print_random_numbers(numbers, 6);

  // Nur in main: Kein return bedeutet, dass 0 zurückgegeben wird.
  // Per Konvention signalisiert das der umgebenden Shell einen erfolgreichen
  // Programmdurchlauf.
}
</code></pre>
<p>Die Vorgehensweise mit nackten Zeigern, wie ich sie gerade beschrieben habe, ist in C++ allerdings eher unüblich, weil sie vergleichsweise umständlich ist. Einfacher geht es mit std::vector:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;ctime&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

std::vector&lt;int&gt; make_random_numbers(std::size_t this_many) {
  std::vector&lt;int&gt; result;

  // Das hier ist nicht direkt notwendig, aber vorher genug Speicher anzufordern
  // ist aus Performancegründen sinnvoll.
  result.reserve(this_many);

  while(result.size() &lt; this_many) {
    result.push_back(std::rand() % 41 + 1);
  }

  return result;
}

void print_random_numbers(std::vector&lt;int&gt; const &amp;numbers) {
  for(std::size_t i = 0; i &lt; numbers.size(); ++i) {
    std::cout &lt;&lt; numbers[i] &lt;&lt; '\n';
  }
}

int main() {
  std::srand(std::time(0));

  print_random_numbers(make_random_numbers(6));
}
</code></pre>
<p>Ansonsten gibt es noch std::(tr1::)array, was dann Sinn macht, wenn die Anzahl der zu generierenden Zahlen zur Compilezeit feststeht. Wenn dein Compiler die relevanten Teile von C++11 bereits beherrscht:</p>
<pre><code class="language-cpp">#include &lt;array&gt;
#include &lt;cstdlib&gt;
#include &lt;ctime&gt;
#include &lt;iostream&gt;

std::array&lt;int, 6&gt; make_six_random_numbers() {
  std::array&lt;int, 6&gt; result;

  for(std::size_t i = 0; i &lt; result.size(); ++i) {
    result[i] = std::rand() % 41 + 1;
  }

  return result;
}

void print_six_random_numbers(std::array&lt;int, 6&gt; const &amp;numbers) {
  for(std::size_t i = 0; i &lt; numbers.size(); ++i) {
    std::cout &lt;&lt; numbers[i] &lt;&lt; '\n';
  }
}

int main() {
  std::srand(std::time(0));

  print_six_random_numbers(make_six_random_numbers());
}
</code></pre>
<p>P.S.: Soweit ich weiß, wirft Dunkelheit keinen Schatten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120344</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 17 Sep 2011 01:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie übergebe ich ein Array bzw. Pointer als Parameter? on Sat, 17 Sep 2011 08:06:27 GMT]]></title><description><![CDATA[<p>Gut, du bist Neuling wie du sagst. Ist nicht schlimm! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Deine Frage wäre ein guter Grund, sich mit den Grundlagen von C und C++ vertraut zu machen. Bücher für Einsteiger können helfen, Tutorials auch. Beginne ganz unten mit einer Funktion, die zunächst nur eine einzelne Variable - a=func(b) - entgegennimmt und a=b+1 zurückgibt. Danach probierst du dasselbe mit einem Pointer für b. Erst wenn du das verstanden hast, gehst du zu Arrays über.</p>
<p>Es bringt dir wenig, ohne diese Grundlagen in Sufus zu suchen oder hier um Hilfe und Lösungen zu bitten. Wir können sinnvoll nur dann antworten, wenn du die Anwort auch verstehst. Lernen musst du selbst, und das geht am besten mit eigenem Probieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2120358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120358</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sat, 17 Sep 2011 08:06:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wie übergebe ich ein Array bzw. Pointer als Parameter? on Sat, 17 Sep 2011 15:54:12 GMT]]></title><description><![CDATA[<p>Vielen Dank seldon &amp; berniebutt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich bin ja eigentlich zu faul um zu lesen.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Werde mich jedoch trotzdem nochmal durch ein E-Book quälen <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/2120497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2120497</guid><dc:creator><![CDATA[YamiNoKage]]></dc:creator><pubDate>Sat, 17 Sep 2011 15:54:12 GMT</pubDate></item></channel></rss>