<?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[Variableninhalt kann nicht gelöscht werden]]></title><description><![CDATA[<p>hi,<br />
ich habe ein programm schreiben, das mitgliederdaten verwaltet. u. a. sollen diese auch gelöscht werden (ich arbeite mit einem array, keinem pointer, und das soll auch so bleiben)<br />
da bleibt ja nur die möglichkeit, den inhalt der variable auf leer (&quot; &quot;) zu setzen (es handelt sich um string-werte)<br />
ich habe den debugger eingesetzt und bekomme in der markierten zeile den fehler</p>
<p><strong>Unbehandelte Ausnahme bei 0x00423720 in Abschlussaufgabe mit Strings.exe: 0xC0000005: Zugriffsverletzung-Schreibposition 0x20202020.</strong></p>
<p>ist ja auch klar: ich habe statt &quot; &quot; ' ' verwendet (wie man es bei char-werten macht). wenn ich dies änder, kommt beim kompilieren der fehler</p>
<p><strong>c:\Dokumente und Einstellungen\Internet\Desktop\C++-Schulung\Programme\Abschlussaufgabe optimiert\Abschlussaufgabe mit Strings.cpp(521) : error C2440: '=': 'const char [2]' kann nicht in 'std::allocator&lt;_Ty&gt;::value_type' konvertiert werden<br />
with<br />
[<br />
_Ty=char<br />
]<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat</strong></p>
<p>und das ganze natürlich vier mal...</p>
<p>hier mal mein code:</p>
<pre><code class="language-csharp">void MitgliedLoesch()
{

	char EingabeLoesch;
	int MitgliedNr;

	do		// Schleife, läuft solange, Eingabe gleich true
	{	system(&quot;cls&quot;);
		cout &lt;&lt; &quot;\n\tMitglieder loeschen:&quot;;
		cout &lt;&lt; &quot;\n\t~~~~~~~~~~~~~~~~~~~~&quot;;

		for ( int Zaehler=0; Zaehler &lt; gesNr; Zaehler++)	// Zähler wird bei jedem Durchlauf um 1 erhöht
		{	if (Mitglied[Zaehler].Name!=&quot; &quot;)		// Ausgabe nur, wenn Name ungleich leer ist
			{	cout &lt;&lt; endl &lt;&lt; Zaehler;
				cout &lt;&lt; &quot; --&gt; &quot;;
				cout &lt;&lt; Mitglied[Zaehler].Name;		// Ausgabe des Namens
				cout &lt;&lt; &quot;, &quot;;
				cout &lt;&lt; Mitglied[Zaehler].Vorname;	// und des Vornamens
				cout &lt;&lt; endl;
			}
		}

		cout &lt;&lt; &quot;\n\nBitte geben Sie die Nr. des zu loeschenden Mitglieds ein\n\n\t&quot;;
		cin &gt;&gt; MitgliedNr;			// Eingabe der Nr, dessen Mitglied gelöscht werden soll

		for (Zaehler=0; Zaehler&lt;35; Zaehler++)
		{	Mitglied[MitgliedNr].Name[Zaehler]=' ';         &lt;&lt;--- Hier kommt der Fehler		// alle strings werden auf leer gesetzt
			Mitglied[MitgliedNr].Vorname[Zaehler]=' ';
			Mitglied[MitgliedNr].StrasseNr[Zaehler]=' ';
			Mitglied[MitgliedNr].PLZ=0;					// alle int-Werte auf 0
			Mitglied[MitgliedNr].Ort[Zaehler]=' ';
			Mitglied[MitgliedNr].GebJahr=0;
			Mitglied[MitgliedNr].GebMonat=0;
			Mitglied[MitgliedNr].GebTag=0;
			Mitglied[MitgliedNr].MitgliedMon=0;
			Mitglied[MitgliedNr].MitgliedJahr=0;
			Mitglied[MitgliedNr].Tel=0;
			Mitglied[MitgliedNr].Beitrag=0;
		}

		cout &lt;&lt; &quot;Moechten Sie ein weiteres Mitglied loeschen? (j/n)&quot;;	// Frage, ob weiteres Mitlied gelöscht werden soll
		cin &gt;&gt; EingabeLoesch;
	}
	while (EingabeLoesch == 'j');

	Menu();
}
</code></pre>
<p>ich hoffe, ihr könnt mir helfen, woran das liegt, und wie ich diesen fehler behebe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132232/variableninhalt-kann-nicht-gelöscht-werden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 10:03:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132232.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Jan 2006 07:25:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 07:32:14 GMT]]></title><description><![CDATA[<p>hi,<br />
ich habe ein programm schreiben, das mitgliederdaten verwaltet. u. a. sollen diese auch gelöscht werden (ich arbeite mit einem array, keinem pointer, und das soll auch so bleiben)<br />
da bleibt ja nur die möglichkeit, den inhalt der variable auf leer (&quot; &quot;) zu setzen (es handelt sich um string-werte)<br />
ich habe den debugger eingesetzt und bekomme in der markierten zeile den fehler</p>
<p><strong>Unbehandelte Ausnahme bei 0x00423720 in Abschlussaufgabe mit Strings.exe: 0xC0000005: Zugriffsverletzung-Schreibposition 0x20202020.</strong></p>
<p>ist ja auch klar: ich habe statt &quot; &quot; ' ' verwendet (wie man es bei char-werten macht). wenn ich dies änder, kommt beim kompilieren der fehler</p>
<p><strong>c:\Dokumente und Einstellungen\Internet\Desktop\C++-Schulung\Programme\Abschlussaufgabe optimiert\Abschlussaufgabe mit Strings.cpp(521) : error C2440: '=': 'const char [2]' kann nicht in 'std::allocator&lt;_Ty&gt;::value_type' konvertiert werden<br />
with<br />
[<br />
_Ty=char<br />
]<br />
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat</strong></p>
<p>und das ganze natürlich vier mal...</p>
<p>hier mal mein code:</p>
<pre><code class="language-csharp">void MitgliedLoesch()
{

	char EingabeLoesch;
	int MitgliedNr;

	do		// Schleife, läuft solange, Eingabe gleich true
	{	system(&quot;cls&quot;);
		cout &lt;&lt; &quot;\n\tMitglieder loeschen:&quot;;
		cout &lt;&lt; &quot;\n\t~~~~~~~~~~~~~~~~~~~~&quot;;

		for ( int Zaehler=0; Zaehler &lt; gesNr; Zaehler++)	// Zähler wird bei jedem Durchlauf um 1 erhöht
		{	if (Mitglied[Zaehler].Name!=&quot; &quot;)		// Ausgabe nur, wenn Name ungleich leer ist
			{	cout &lt;&lt; endl &lt;&lt; Zaehler;
				cout &lt;&lt; &quot; --&gt; &quot;;
				cout &lt;&lt; Mitglied[Zaehler].Name;		// Ausgabe des Namens
				cout &lt;&lt; &quot;, &quot;;
				cout &lt;&lt; Mitglied[Zaehler].Vorname;	// und des Vornamens
				cout &lt;&lt; endl;
			}
		}

		cout &lt;&lt; &quot;\n\nBitte geben Sie die Nr. des zu loeschenden Mitglieds ein\n\n\t&quot;;
		cin &gt;&gt; MitgliedNr;			// Eingabe der Nr, dessen Mitglied gelöscht werden soll

		for (Zaehler=0; Zaehler&lt;35; Zaehler++)
		{	Mitglied[MitgliedNr].Name[Zaehler]=' ';         &lt;&lt;--- Hier kommt der Fehler		// alle strings werden auf leer gesetzt
			Mitglied[MitgliedNr].Vorname[Zaehler]=' ';
			Mitglied[MitgliedNr].StrasseNr[Zaehler]=' ';
			Mitglied[MitgliedNr].PLZ=0;					// alle int-Werte auf 0
			Mitglied[MitgliedNr].Ort[Zaehler]=' ';
			Mitglied[MitgliedNr].GebJahr=0;
			Mitglied[MitgliedNr].GebMonat=0;
			Mitglied[MitgliedNr].GebTag=0;
			Mitglied[MitgliedNr].MitgliedMon=0;
			Mitglied[MitgliedNr].MitgliedJahr=0;
			Mitglied[MitgliedNr].Tel=0;
			Mitglied[MitgliedNr].Beitrag=0;
		}

		cout &lt;&lt; &quot;Moechten Sie ein weiteres Mitglied loeschen? (j/n)&quot;;	// Frage, ob weiteres Mitlied gelöscht werden soll
		cin &gt;&gt; EingabeLoesch;
	}
	while (EingabeLoesch == 'j');

	Menu();
}
</code></pre>
<p>ich hoffe, ihr könnt mir helfen, woran das liegt, und wie ich diesen fehler behebe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961471</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Mon, 09 Jan 2006 07:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 07:29:25 GMT]]></title><description><![CDATA[<p>Du solltest für die Namen und Adressangaben lieber std::string nehmen als char[], dann klappt es auch mit dem Löschen (und dann ist auch deine seltsame for()-Schleife überflüssig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961473</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jan 2006 07:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 07:31:19 GMT]]></title><description><![CDATA[<p>ich habe ja strings genommen. deshalb wundert es mich ja, dass &quot; &quot; sich nicht kompilieren lässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961474</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Mon, 09 Jan 2006 07:31:19 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 07:36:27 GMT]]></title><description><![CDATA[<p>ah... jetzt hab ich meinen fehler entdeckt. von meinen hin- und her-änderungen hab ich in der funktion vergessen, den index wegzunehmen, in der initialiesierung waren es schon string-werte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961481</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Mon, 09 Jan 2006 07:36:27 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 08:33:12 GMT]]></title><description><![CDATA[<p>sarah1986 schrieb:</p>
<blockquote>
<p>ich habe ja strings genommen. deshalb wundert es mich ja, dass &quot; &quot; sich nicht kompilieren lässt.</p>
</blockquote>
<p>Ja, aber Strings löscht man nicht mit &quot;for(i=0;i&lt;x;++i)str[i]=' ';&quot; - das geht viel schneller mit str=&quot;&quot;;</p>
<p>PS: Und der leere String ist &quot;&quot; und nicht &quot; &quot; (letzteres ist ein alleinstehendes Leerzeichen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961509</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jan 2006 08:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 10:04:02 GMT]]></title><description><![CDATA[<p>ist das nicht egal, solang ich es einheitlich mache?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961569</guid><dc:creator><![CDATA[sarah1986]]></dc:creator><pubDate>Mon, 09 Jan 2006 10:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Variableninhalt kann nicht gelöscht werden on Mon, 09 Jan 2006 11:57:57 GMT]]></title><description><![CDATA[<p>sarah1986 schrieb:</p>
<blockquote>
<p>ist das nicht egal, solang ich es einheitlich mache?</p>
</blockquote>
<p>Wenn du einen std::string leeren möchtest empfehle ich dir die methode clear(). Oder eben &quot;&quot; zuweisen.</p>
<p>Wenn du &quot; &quot; übergibst ist dein string nicht leer. empty() gibt false zurück und size() oder length() geben 1 zurück.</p>
<p>Daher ist das nicht sonderlich empfehlenswert ( &quot; &quot; zuübergeben ) wenn du einen Leeren String haben möchtest.</p>
<p>BR</p>
<p>evilissimo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/961649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/961649</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 09 Jan 2006 11:57:57 GMT</pubDate></item></channel></rss>