<?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[Problem mit dynamischem Struktur-Array]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>wir sollen im Programmierunterricht ein kleines Programm schreiben, in das wir die Daten eines Mitarbeiters (Name, Alter, Ehestand und Gehalt) eintragen können. Diese Daten sollen, nachdem man genügend Mitarbeiter angelegt wurden, angezeigt werden.</p>
<p>Ich bin eigentlich schon so gut wie fertig, aber ich habe ein kleines Problem. Das Array für die Mitarbeiter soll dynamisch sein, also muss man Speicher auf dem Heap anfordern. Ich habe das bisher so gelöst:</p>
<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
using namespace std;

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
	bool   verheiratet;			// für den Ehestand
	int    alter;				// für das Alter
	float  gehalt;				// für das Gehalt
	char   name[20];			// für den Nachnamen
};

// Hauptfunktion
int main(void)
{
	// deklarieren der benötigten Variablen
	char weiter, verheiratet;
	int i = 0;

	// läuft solange, bis Benutzer keine weitere
	// Eingabe verlangt
	do
	{
		// Speicher anfordern
		SMitarbeiter* pMitarbeiter[100] = new SMitarbeiter; // Hier bekomm ich einen Fehler

		// Eingabe
		// Wie heißt der Mitarbeiter?
		cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;name;

		// Wie alt ist der Mitarbeiter?
		cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

		// Ist der Mitarbeiter verheiratet?
		cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
		cin &gt;&gt; verheiratet;

		if(verheiratet == 'j' || verheiratet == 'J')
			pMitarbeiter[i]-&gt;verheiratet = true;			// ja, ist er
		else if(verheiratet == 'n' || verheiratet == 'N')
			pMitarbeiter[i]-&gt;verheiratet = false;			// nein, ist er nicht

		// Wie viel Gehalt bekommt der Mitarbeiter?
		cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

		// weitere Mitarbeiter hinzufügen
		cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
		cin &gt;&gt; weiter;

		// i inkrementieren
		i++;
	} while(weiter == 'j');

        // Ausgeben der Mitarbeiterdaten
        ...

	return 0;
}
</code></pre>
<p>Wenn ich das Programm bis dahin kompiliere, erhalte ich im VC++6 folgenden Fehler:</p>
<pre><code>error C2440: 'initializing' : 'struct SMitarbeiter *' kann nicht in 'struct SMitarbeiter *[100]' konvertiert werden
        Es gibt keine Konvertierungen von Feldtypen, obwohl es Konvertierungen von Verweisen oder Zeigern in Felder gibt
</code></pre>
<p>Ich hab keine Ahnung, woran das liegen kann. Hab schon einiges versucht, bin aber immer wieder gescheitert. Ich hoffe ihr könnt mir helfen.</p>
<p>Danke schonmal...</p>
<p>MfG Apo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148728/problem-mit-dynamischem-struktur-array</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 00:51:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148728.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 May 2006 20:21:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Mon, 29 May 2006 20:22:55 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>wir sollen im Programmierunterricht ein kleines Programm schreiben, in das wir die Daten eines Mitarbeiters (Name, Alter, Ehestand und Gehalt) eintragen können. Diese Daten sollen, nachdem man genügend Mitarbeiter angelegt wurden, angezeigt werden.</p>
<p>Ich bin eigentlich schon so gut wie fertig, aber ich habe ein kleines Problem. Das Array für die Mitarbeiter soll dynamisch sein, also muss man Speicher auf dem Heap anfordern. Ich habe das bisher so gelöst:</p>
<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
using namespace std;

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
	bool   verheiratet;			// für den Ehestand
	int    alter;				// für das Alter
	float  gehalt;				// für das Gehalt
	char   name[20];			// für den Nachnamen
};

// Hauptfunktion
int main(void)
{
	// deklarieren der benötigten Variablen
	char weiter, verheiratet;
	int i = 0;

	// läuft solange, bis Benutzer keine weitere
	// Eingabe verlangt
	do
	{
		// Speicher anfordern
		SMitarbeiter* pMitarbeiter[100] = new SMitarbeiter; // Hier bekomm ich einen Fehler

		// Eingabe
		// Wie heißt der Mitarbeiter?
		cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;name;

		// Wie alt ist der Mitarbeiter?
		cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

		// Ist der Mitarbeiter verheiratet?
		cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
		cin &gt;&gt; verheiratet;

		if(verheiratet == 'j' || verheiratet == 'J')
			pMitarbeiter[i]-&gt;verheiratet = true;			// ja, ist er
		else if(verheiratet == 'n' || verheiratet == 'N')
			pMitarbeiter[i]-&gt;verheiratet = false;			// nein, ist er nicht

		// Wie viel Gehalt bekommt der Mitarbeiter?
		cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

		// weitere Mitarbeiter hinzufügen
		cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
		cin &gt;&gt; weiter;

		// i inkrementieren
		i++;
	} while(weiter == 'j');

        // Ausgeben der Mitarbeiterdaten
        ...

	return 0;
}
</code></pre>
<p>Wenn ich das Programm bis dahin kompiliere, erhalte ich im VC++6 folgenden Fehler:</p>
<pre><code>error C2440: 'initializing' : 'struct SMitarbeiter *' kann nicht in 'struct SMitarbeiter *[100]' konvertiert werden
        Es gibt keine Konvertierungen von Feldtypen, obwohl es Konvertierungen von Verweisen oder Zeigern in Felder gibt
</code></pre>
<p>Ich hab keine Ahnung, woran das liegen kann. Hab schon einiges versucht, bin aber immer wieder gescheitert. Ich hoffe ihr könnt mir helfen.</p>
<p>Danke schonmal...</p>
<p>MfG Apo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067685</guid><dc:creator><![CDATA[Apocalypse]]></dc:creator><pubDate>Mon, 29 May 2006 20:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Mon, 29 May 2006 21:19:29 GMT]]></title><description><![CDATA[<p>die syntax muss so aussehen:</p>
<pre><code class="language-cpp">SMitarbeiter* pMitarbeiter = new SMitarbeiter[100];
</code></pre>
<p>Und vergiss am ende nicht ein:</p>
<pre><code class="language-cpp">delete[] pMitarbeiter;
</code></pre>
<p>damit der speicher wieder freigegeben wird.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067713</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Mon, 29 May 2006 21:19:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Mon, 29 May 2006 21:34:40 GMT]]></title><description><![CDATA[<p>Danke..., nun funktioniert es! ^^</p>
<p>MfG Apo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1067718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1067718</guid><dc:creator><![CDATA[Apocalypse]]></dc:creator><pubDate>Mon, 29 May 2006 21:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Tue, 30 May 2006 16:42:32 GMT]]></title><description><![CDATA[<p>okay..., es funktioniert doch noch nicht ganz. Mein Programm sieht nun so aus:</p>
<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
using namespace std;

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
	bool   verheiratet;			// für den Ehestand
	int    alter;				// für das Alter
	float  gehalt;				// für das Gehalt
	char   name[20];			// für den Nachnamen
};

// Hauptfunktion
int main(void)
{
	// deklarieren der benötigten Variablen
	char weiter, verheiratet;
	int i = 0, j;
	SMitarbeiter* pMitarbeiter[100];

	// läuft solange, bis Benutzer keine weitere
	// Eingabe verlangt
	do
	{
		// Speicher anfordern
		pMitarbeiter[i] = new SMitarbeiter;

		// Eingabe
		// Wie heißt der Mitarbeiter?
		cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;name;

		// Wie alt ist der Mitarbeiter?
		cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

		// Ist der Mitarbeiter verheiratet?
		cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
		cin &gt;&gt; verheiratet;

		if(verheiratet == 'j' || verheiratet == 'J')
			pMitarbeiter[i]-&gt;verheiratet = true;			// ja, ist er
		else if(verheiratet == 'n' || verheiratet == 'N')
			pMitarbeiter[i]-&gt;verheiratet = false;

		// Wie viel Gehalt bekommt der Mitarbeiter?
		cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

		// weitere Mitarbeiter hinzufügen
		cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
		cin &gt;&gt; weiter;

		// i inkrementieren
		i++;
		cout &lt;&lt; endl;
	} while(weiter == 'j');

	// Daten ausgeben
	for(j = 0; j &lt; i; j++)
	{
		cout &lt;&lt; endl &lt;&lt; &quot;Name:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;name &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Verheiratet:\t&quot;;
		if(pMitarbeiter[j]-&gt;verheiratet == true)
			cout &lt;&lt; &quot;Ja&quot; &lt;&lt; endl;
		else
			cout &lt;&lt; &quot;Nein&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Gehalt:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;gehalt &lt;&lt; &quot; EUR&quot; &lt;&lt; endl;
	}

	// Speicher wieder freigeben
	delete[] pMitarbeiter;

	return 0;
}
</code></pre>
<p>Ich kann nun all meine Daten eingeben und sie werden auch richtig ausgegeben, aber ich bekomme, wenn die Zeile:</p>
<pre><code class="language-cpp">delete[] pMitarbeiter;
</code></pre>
<p>erreicht wird einen Exception-Fehler. Greife ich beim löschen auf ein nicht bestehendes Array zu? Ich sag ihm doch, dass er das ganze Array löschen soll. Ich hoffe ihr könnt mir erneut helfen.</p>
<p>MfG Apo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068232</guid><dc:creator><![CDATA[Apocalypse]]></dc:creator><pubDate>Tue, 30 May 2006 16:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Tue, 30 May 2006 16:49:57 GMT]]></title><description><![CDATA[<p>Du hast das ein bischen verdreht.</p>
<pre><code class="language-cpp">SMitarbeiter* pMitarbeiter[100];
</code></pre>
<p>erzeugt ein statisches Array mit 100 Elementen vom Typ Zeiger auf SMitarbeiter. Du willst ja sicher ein dynamisches Array auf SMitarbeiter.<br />
Also</p>
<pre><code class="language-cpp">SMitarbeiter* pMitarbeiter = new pMitarbeiter[100];
</code></pre>
<p>dann noch</p>
<pre><code class="language-cpp">pMitarbeiter[i] = new SMitarbeiter;
</code></pre>
<p>weglassen und es sollte gehen. Du solltest in deiner while-Schleife noch prüfen ob du die Arraygrenzen (100) nicht überschreitest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068240</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 30 May 2006 16:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Tue, 30 May 2006 21:11:22 GMT]]></title><description><![CDATA[<p>Wenn ich es so mache, wie du es geschrieben hast, dann bekomme ich 102 Fehler um die Ohren geschmiessen. Hab ich etwas falsch verstanden?</p>
<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
using namespace std;

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
	bool   verheiratet;			// für den Ehestand
	int    alter;				// für das Alter
	float  gehalt;				// für das Gehalt
	char   name[20];			// für den Nachnamen
};

// Hauptfunktion
int main(void)
{
	// deklarieren der benötigten Variablen
	char weiter, verheiratet;
	int i = 0, j;
	SMitarbeiter* pMitarbeiter = new pMitarbeiter[100];

	// läuft solange, bis Benutzer keine weitere
	// Eingabe verlangt
	do
	{
		// Speicher anfordern
		pMitarbeiter[i] = new SMitarbeiter;

		// Eingabe
		// Wie heißt der Mitarbeiter?
		cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;name;

		// Wie alt ist der Mitarbeiter?
		cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

		// Ist der Mitarbeiter verheiratet?
		cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
		cin &gt;&gt; verheiratet;

		if(verheiratet == 'j' || verheiratet == 'J')
			pMitarbeiter[i]-&gt;verheiratet = true;			// ja, ist er
		else if(verheiratet == 'n' || verheiratet == 'N')
			pMitarbeiter[i]-&gt;verheiratet = false;

		// Wie viel Gehalt bekommt der Mitarbeiter?
		cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

		// weitere Mitarbeiter hinzufügen
		cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
		cin &gt;&gt; weiter;

		// i inkrementieren
		i++;
		cout &lt;&lt; endl;
	} while(weiter == 'j');

	// Daten ausgeben
	for(j = 0; j &lt; i; j++)
	{
		cout &lt;&lt; endl &lt;&lt; &quot;Name:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;name &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Verheiratet:\t&quot;;
		if(pMitarbeiter[j]-&gt;verheiratet == true)
			cout &lt;&lt; &quot;Ja&quot; &lt;&lt; endl;
		else
			cout &lt;&lt; &quot;Nein&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Gehalt:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;gehalt &lt;&lt; &quot; EUR&quot; &lt;&lt; endl;
	}

	// Speicher wieder freigeben
	delete[] pMitarbeiter;

	cin.get();
	cin.get();
	return 0;
}
</code></pre>
<p>MfG Apo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068431</guid><dc:creator><![CDATA[Apocalypse]]></dc:creator><pubDate>Tue, 30 May 2006 21:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 00:43:59 GMT]]></title><description><![CDATA[<p>hi,<br />
ALSO das:</p>
<p>Braunstein schrieb:</p>
<blockquote>
<p>Also</p>
<pre><code class="language-cpp">SMitarbeiter* pMitarbeiter = new pMitarbeiter[100];
</code></pre>
</blockquote>
<p>is totaler Quatsch... <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="😃"
    /> denn pMitarbeiter ist kein Typ. Also so sieht die Syntax für die dynamische Speicherreserviereung aus:</p>
<pre><code>Typ* pName = new Typ[Value];
</code></pre>
<p>Dabei ist...<br />
Typ ein elementarer Datentyp oder ein Objekt einer Klasse/Struct/Union/etc.<br />
...und...<br />
Value ein ganzzahliger Ausdruck; ungleich 0!</p>
<p>ALSO in deinem Fall:</p>
<pre><code class="language-cpp">SMitarbeiter* pMitarbeiter = new SMitarbeiter[100];
</code></pre>
<p>so und das solltest du auch in deinen Code mal einbinden... <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>glaub du verwirrst hier alle... <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="😃"
    /> <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>
<p>Hoffe das war verständlich <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="🙄"
    /> -&gt; <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>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068468</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 31 May 2006 00:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 00:59:12 GMT]]></title><description><![CDATA[<p>hier der !!ansatzweise!! korrigierte Code</p>
<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
using namespace std;

#define MAX_MITARBEITER 100

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
    bool   verheiratet;            // für den Ehestand
    int    alter;                // für das Alter
    float  gehalt;                // für das Gehalt
    char   name[20];            // für den Nachnamen
};

// Hauptfunktion
int main(void)
{
    // deklarieren der benötigten Variablen
    char weiter, verheiratet;
    int i = 0, j;
    // Speicher anfordern
    SMitarbeiter* pMitarbeiter = new SMitarbeiter[MAX_MITARBEITER];

    // läuft solange, bis Benutzer keine weitere
    // Eingabe verlangt
    do
    {
        // Eingabe
        // Wie heißt der Mitarbeiter?
        cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
        cin &gt;&gt; pMitarbeiter[i]-&gt;name;

        // Wie alt ist der Mitarbeiter?
        cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
        cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

        // Ist der Mitarbeiter verheiratet?
        cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
        cin &gt;&gt; verheiratet;

        if(verheiratet == 'j' || verheiratet == 'J')
            pMitarbeiter[i]-&gt;verheiratet = true;            // ja, ist er
        else if(verheiratet == 'n' || verheiratet == 'N')
            pMitarbeiter[i]-&gt;verheiratet = false;

        // Wie viel Gehalt bekommt der Mitarbeiter?
        cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
        cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

        // weitere Mitarbeiter hinzufügen
        cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
        cin &gt;&gt; weiter;

        // i inkrementieren
        i++;
        if(i == MAX_MITARBEITER - 1)
           break;
        cout &lt;&lt; endl;
    } while(weiter == 'j');

    // Daten ausgeben
    for(j = 0; j &lt; i; j++)
    {
        cout &lt;&lt; endl &lt;&lt; &quot;Name:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;name &lt;&lt; endl;
        cout &lt;&lt; &quot;Alter:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;alter &lt;&lt; endl;
        cout &lt;&lt; &quot;Verheiratet:\t&quot;;
        if(pMitarbeiter[j]-&gt;verheiratet == true)
            cout &lt;&lt; &quot;Ja&quot; &lt;&lt; endl;
        else
            cout &lt;&lt; &quot;Nein&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;Gehalt:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;gehalt &lt;&lt; &quot; EUR&quot; &lt;&lt; endl;
    }

    // Speicher wieder freigeben
    delete[] pMitarbeiter;

    cin.get();
    cin.get();
    return 0;
}
</code></pre>
<p>...der dürfte zwar funktionieren(nicht getestet!) aber da ist -genau genommen- nix dynamisch...<br />
bin mir nicht ganz sicher was du mit deinem Code erreichen wills,<br />
aber wenn es das is was ich denke (so viele Mitarbeiter einlesen wie der User<br />
es möchte und Array je nach Wunsch vergrößern), dann is das n bissl mehr Arbeit:<br />
Du musst ein Temparray erstellen, darin die Daten des Hauptarrays zwischenspeichern...<br />
dann das Hauptarray freigeben neu reservieren<br />
(diesmal ein Element mehr) dann die daten des Temparrays wieder ins<br />
Hauptarray kopieren und das neue Element anhängen (ans Hauptarray);<br />
anschließend das Temparray wieder freigeben...<br />
dazu hatte ich jetzt keine Lust mehr <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="🙄"
    /> ...</p>
<p>Hoffe das war verständlich und trifft deine Intention <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>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068469</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 31 May 2006 00:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 06:16:53 GMT]]></title><description><![CDATA[<p>Dann baue doch dein Programm in etwa so um:</p>
<pre><code class="language-cpp">//...
int main(void)
{
    // deklarieren der benötigten Variablen
    char weiter, verheiratet;
    int i = 0, j;
    int Anzahl = 0;

    //wieviele Mitarbeiter?
    cout&lt;&lt;&quot;wieviele Mitarbeiter wollen sie eingeben?&quot;&lt;&lt;endl;
    cin&gt;&gt;Anzahl;
    // Speicher anfordern
    SMitarbeiter* pMitarbeiter = new SMitarbeiter[Anzahl];

    // läuft solange, bis Benutzer keine weitere
    // Eingabe verlangt
    for(i = 0; i &lt; Anzahl; i++)
    {
        // Eingabe
        // Wie heißt der Mitarbeiter?
        cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
        cin &gt;&gt; pMitarbeiter[i]-&gt;name;

        // Wie alt ist der Mitarbeiter?
        cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
        cin &gt;&gt; pMitarbeiter[i]-&gt;alter;
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1068501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068501</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Wed, 31 May 2006 06:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 06:21:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// Header-Dateien
#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

// Struktur: Mitarbeiter
// Aufg.: Speichert die Informationen der Mitarbeiter
struct SMitarbeiter
{
	bool   verheiratet;			// für den Ehestand
	int    alter;				// für das Alter
	float  gehalt;				// für das Gehalt
	char   name[20];			// für den Nachnamen
};

// Hauptfunktion
int main(void)
{
	// deklarieren der benötigten Variablen
	char weiter, verheiratet;
	int i = 0, j;

    vector&lt;SMitarbeiter*&gt; pMitarbeiter;

	// läuft solange, bis Benutzer keine weitere
	// Eingabe verlangt
	do
	{
		// Speicher anfordern und in vector packen
		pMitarbeiter.push_back(new SMitarbeiter);

		// Eingabe
		// Wie heißt der Mitarbeiter?
		cout &lt;&lt; &quot;Name des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;name;

		// Wie alt ist der Mitarbeiter?
		cout &lt;&lt; &quot;Alter des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;alter;

		// Ist der Mitarbeiter verheiratet?
		cout &lt;&lt; &quot;Ist Mitarbeiter &quot; &lt;&lt; (i + 1) &lt;&lt; &quot; verheiratet? &quot;;
		cin &gt;&gt; verheiratet;

		if(verheiratet == 'j' || verheiratet == 'J')
			pMitarbeiter[i]-&gt;verheiratet = true;			// ja, ist er
		else if(verheiratet == 'n' || verheiratet == 'N')
			pMitarbeiter[i]-&gt;verheiratet = false;

		// Wie viel Gehalt bekommt der Mitarbeiter?
		cout &lt;&lt; &quot;Gehalt des &quot; &lt;&lt; (i + 1) &lt;&lt; &quot;. Mitarbeiter: &quot;;
		cin &gt;&gt; pMitarbeiter[i]-&gt;gehalt;

		// weitere Mitarbeiter hinzufügen
		cout &lt;&lt; &quot;weitere Mitarbeiter (j/n)? &quot;;
		cin &gt;&gt; weiter;

		// i inkrementieren
		i++;
		cout &lt;&lt; endl;
	} while(weiter == 'j');

	// Daten ausgeben
	for(j = 0; j &lt; i; j++)
	{
		cout &lt;&lt; endl &lt;&lt; &quot;Name:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;name &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Verheiratet:\t&quot;;
		if(pMitarbeiter[j]-&gt;verheiratet == true)
			cout &lt;&lt; &quot;Ja&quot; &lt;&lt; endl;
		else
			cout &lt;&lt; &quot;Nein&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Gehalt:\t&quot; &lt;&lt; pMitarbeiter[j]-&gt;gehalt &lt;&lt; &quot; EUR&quot; &lt;&lt; endl;
	}

	// Speicher wieder freigeben
	vector&lt;SMitarbeiter*&gt;::iterator it = pMitarbeiter.begin();
    while(it != pMitarbeiter.end()) {
               delete *it;
               ++it;
    } 

	cin.get();
	cin.get();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1068503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068503</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 31 May 2006 06:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 06:25:02 GMT]]></title><description><![CDATA[<p>An die STL'ianer:</p>
<p>Bringt das:</p>
<pre><code class="language-cpp">vector&lt;SMitarbeiter*&gt;::iterator it_start = pMitarbeiter.begin();
vector&lt;SMitarbeiter*&gt;::iterator it_end = pMitarbeiter.end();

while(it_start != it_end) {
           delete *it_start;
           ++it_start;
}
</code></pre>
<p>Im gegensatz zu dem hier einen größeren Vorteil:</p>
<pre><code class="language-cpp">vector&lt;SMitarbeiter*&gt;::iterator it = pMitarbeiter.begin();

while(it != pMitarbeiter.end()) {
           delete *it;
           ++it;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1068504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068504</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 31 May 2006 06:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 07:37:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a><br />
Warum so aufgeregt. Man kann sich doch mal verschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068535</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 31 May 2006 07:37:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 07:49:56 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/385">@Freak</a>: Ich würde mal sagen, der obere dürfte schneller sein, weil du im zweiten Beispiel für jeden Durchlauf einen Aufruf von end() hast (aber gute Compiler optimieren diesen Aufruf durch inline-Funktionen - da fällt der ZUsatzaufwand dann wieder weg).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068543</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 31 May 2006 07:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dynamischem Struktur-Array on Wed, 31 May 2006 07:51:18 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/385">@Freak</a>: Ich würde mal sagen, der obere dürfte schneller sein, weil du im zweiten Beispiel für jeden Durchlauf einen Aufruf von end() hast (aber gute Compiler optimieren diesen Aufruf durch inline-Funktionen - da fällt der ZUsatzaufwand dann wieder weg).</p>
</blockquote>
<p>Ok, danke. Sowas habe ich mir schon fast gedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1068544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1068544</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 31 May 2006 07:51:18 GMT</pubDate></item></channel></rss>