<?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[lokales Strukturarray an Funktion übergeben]]></title><description><![CDATA[<p>HI,<br />
ich moechte ein lokal (nicht global!!!) deklariertes Struktuarray aus der main() als Pointer an eine Funktion weitergeben. Kann mir einer helfen?<br />
Habe den hier angegebenen Teil meines Quellodes mit Visual C geschrieben.</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;process.h&gt;
#include &lt;string.h&gt;

struct festplatte
{
	char  hersteller[30];
         float kapazitaet;			
         int   cache;
	int   upm;
	float einzelpreis;	
};

void festpl_eingabe(struct festplatte*);

void main()
{
	struct festplatte platte_nr[100];										
	festpl_eingabe(&amp;platte_nr[100]);

	fflush(stdin);
	getchar();
}

void festpl_eingabe(struct festplatte* platte_nr[100])
{
	int i;
	int auswahl;

	do{
	system (&quot;cls&quot;);
	printf (&quot;Bitte geben Sie an, für welche Fetsplatte sie Werte\neingeben moechten.&quot;);
	printf (&quot;\n\nMoegliche Eingaben (1 -100)\nEingabe: &quot;);
	scanf  (&quot;%i&quot;, &amp;i);
	i = i-1;

	printf (&quot;\n\nBitte Hersteller-Namen eingeben:&quot;);
	fflush(stdin);
	gets (platte_nr[i]-&gt;hersteller);

	printf (&quot;\n\nBitte Kapazitaet eingeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%f&quot;, &amp;platte_nr[i]-&gt;kapazitaet);

	printf (&quot;\n\nBitte Cache-groesse angeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%i&quot;, &amp;platte_nr[i]-&gt;cache);

	printf (&quot;\n\nBitte Anzahl der Rotationen pro Minute eingeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%i&quot;, &amp;platte_nr[i]-&gt;upm);

	printf (&quot;\n\nBitte Preis pro Stueck angeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%f&quot;, &amp;platte_nr[i]-&gt;einzelpreis);

	printf (&quot;\n\n\nMoechten Sie einen weiteren Datensatz eingeben?&quot;);
	printf (&quot;\n[1] - Ja\n[2] - Nein&quot;);
	printf (&quot;\n\nAuswahl: &quot;);
	scanf  (&quot;%i&quot;, &amp;auswahl);
	}while (auswahl == 1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/176994/lokales-strukturarray-an-funktion-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 21:11:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176994.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Mar 2007 08:45:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Tue, 27 Mar 2007 08:45:20 GMT]]></title><description><![CDATA[<p>HI,<br />
ich moechte ein lokal (nicht global!!!) deklariertes Struktuarray aus der main() als Pointer an eine Funktion weitergeben. Kann mir einer helfen?<br />
Habe den hier angegebenen Teil meines Quellodes mit Visual C geschrieben.</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;process.h&gt;
#include &lt;string.h&gt;

struct festplatte
{
	char  hersteller[30];
         float kapazitaet;			
         int   cache;
	int   upm;
	float einzelpreis;	
};

void festpl_eingabe(struct festplatte*);

void main()
{
	struct festplatte platte_nr[100];										
	festpl_eingabe(&amp;platte_nr[100]);

	fflush(stdin);
	getchar();
}

void festpl_eingabe(struct festplatte* platte_nr[100])
{
	int i;
	int auswahl;

	do{
	system (&quot;cls&quot;);
	printf (&quot;Bitte geben Sie an, für welche Fetsplatte sie Werte\neingeben moechten.&quot;);
	printf (&quot;\n\nMoegliche Eingaben (1 -100)\nEingabe: &quot;);
	scanf  (&quot;%i&quot;, &amp;i);
	i = i-1;

	printf (&quot;\n\nBitte Hersteller-Namen eingeben:&quot;);
	fflush(stdin);
	gets (platte_nr[i]-&gt;hersteller);

	printf (&quot;\n\nBitte Kapazitaet eingeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%f&quot;, &amp;platte_nr[i]-&gt;kapazitaet);

	printf (&quot;\n\nBitte Cache-groesse angeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%i&quot;, &amp;platte_nr[i]-&gt;cache);

	printf (&quot;\n\nBitte Anzahl der Rotationen pro Minute eingeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%i&quot;, &amp;platte_nr[i]-&gt;upm);

	printf (&quot;\n\nBitte Preis pro Stueck angeben: &quot;);
	fflush(stdin);
	scanf  (&quot;%f&quot;, &amp;platte_nr[i]-&gt;einzelpreis);

	printf (&quot;\n\n\nMoechten Sie einen weiteren Datensatz eingeben?&quot;);
	printf (&quot;\n[1] - Ja\n[2] - Nein&quot;);
	printf (&quot;\n\nAuswahl: &quot;);
	scanf  (&quot;%i&quot;, &amp;auswahl);
	}while (auswahl == 1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1253607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253607</guid><dc:creator><![CDATA[Die Eule]]></dc:creator><pubDate>Tue, 27 Mar 2007 08:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Tue, 27 Mar 2007 08:52:06 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">void festpl_eingabe(struct festplatte*);

...

void festpl_eingabe(struct festplatte* platte_nr[100])
</code></pre>
</blockquote>
<p>Diese Funktionsdefinition passt nicht zum Prototyp, das heißt, du erzeugst damit eine neue Überladung der Funktion - die ursprüngliche Funktion wird dagegen nicht definiert. Die Lösung ist ganz simpel - lass das [100] dort weg (das bringt sowieso keinen Gewinn).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253614</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 27 Mar 2007 08:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Tue, 27 Mar 2007 15:44:49 GMT]]></title><description><![CDATA[<p>Erstmal danke für deine schnelle Hilfe, aber ich fürchte du versthst nicht ganz, was ich eigentlich wollte.<br />
Das Strukturarry muss so sein, daran gibbet nischt zu rütteln.<br />
Aber, wie funktioniert die übergabe, per &lt;&lt;Call by Reference&gt;&gt; Verfahren, so wie hier angedeutet.</p>
<p>Normalerweise sieht sowas ja so aus</p>
<pre><code class="language-cpp">struct struktur
{
    float var1;
    float var2;
    float array1[100];
    float array2[100];
};

void function (struct struktur *);

void main()
{
    struct struktur strukturvariable;

    function (&amp;strukturvariable);
}

void function (struct struktur * strukturvariable)
{
     strukturvariable-&gt;array1[0] = 100;
     printf (&quot;%f&quot;, strukturvariable-&gt;array1[0]);
}
</code></pre>
<p>Angenommen die Strukturvariable wäre ein Array, wie könnte ich diese dann per Pointer, an function &quot;übergeben&quot;?</p>
<p>MfG Die Eule</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253978</guid><dc:creator><![CDATA[Die Eule]]></dc:creator><pubDate>Tue, 27 Mar 2007 15:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Tue, 27 Mar 2007 15:55:03 GMT]]></title><description><![CDATA[<p>Genau so, wie Du's tust:</p>
<p>(BTW: Die ganzen &quot;struct&quot;s braucht's in C++ nicht und printf() auch nicht)</p>
<p>Die Eule schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

struct struktur
{
    float var1;
    float var2;
    float array1[100];
    float array2[100];
};

void function (struktur *);

void main()
{
    struktur strukturvariable[10];

    function (strukturvariable);
}

void function (struktur* strukturvariable)
{
   for(int i=0; i&lt;10; ++i) {
     strukturvariable[i]-&gt;array1[0] = 100;
     std::cout &lt;&lt; strukturvariable[i]-&gt;array1[0];
   }
}
</code></pre>
</blockquote>
<p>(OK, ein &quot;&amp;&quot; habe ich gelöscht)</p>
<p>Ach ja und wo wir schon &quot;C++-isieren&quot;: Warum nicht gleich std::vector ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253987</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 27 Mar 2007 15:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Wed, 28 Mar 2007 17:28:28 GMT]]></title><description><![CDATA[<p>Auch dir ein Dankeschön für deine Antwort.<br />
Mir ist bekannt, das es auch anders, und leichter ^^ geht, aber leider ist dies ein &quot;Hausaufgabe&quot; aus der Schule, deshalb musten wir es so machen ... Lehrer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254865</guid><dc:creator><![CDATA[Die Eule]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to lokales Strukturarray an Funktion übergeben on Thu, 29 Mar 2007 07:14:00 GMT]]></title><description><![CDATA[<p>Die Eule schrieb:</p>
<blockquote>
<p>Auch dir ein Dankeschön für deine Antwort.<br />
Mir ist bekannt, das es auch anders, und leichter ^^ geht, aber leider ist dies ein &quot;Hausaufgabe&quot; aus der Schule, deshalb musten wir es so machen ... Lehrer.</p>
</blockquote>
<p>Verleih' ihm die &quot;Goldene Himbeere des C++-Forums&quot; ! Da ist in schlechter aber reichhaltiger Gesellschaft ... wenn er vorgibt, C++ zu unterrichten, sollte er das auch tun. :p<br />
Wenn das natürlich ein &quot;C-Kurs&quot; ist, ist das was Anderes....</p>
<p>Aber mal zurück zum Thema: Ist denn Deine Frage jetzt beantwortet ?<br />
Ich sehe an meinem Code nichts, was Deinem Lehrer sauer aufstoßen könnte....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255094</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 29 Mar 2007 07:14:00 GMT</pubDate></item></channel></rss>