<?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[realloc]]></title><description><![CDATA[<p>Hi - ich habe eine Klasse, die ich zum Verwalten von mehreren Pizzen etc. - ich habe mir einfach 3 structs gemacht und die dann ineinander verschachtelt speichern alles wichtige und damit sie nicht so allein sind, hab ich sie einfach ma in ne klasse gepackt ^^</p>
<p>Aber macht euch doch selbst ein Bild - hier der Code:</p>
<pre><code class="language-cpp">//die structs an sich
struct pizza_item
	{
		unsigned __int32 handle; //ein handle zum identifizieren
		char *name; //Anzeigename
		char *beschreibung; //Beschreibung dazu
		float *preis; //preise (n (eigtl 0&lt;n&lt;4, aber sollte ja theoretisch für unendlich viele ausgelegt sein) Preise für verschiedene Größe)
	};
struct pizza_list //die Pizzen sind in Listen unterteilt
	{
		unsigned __int16 id; //id zur Liste
		char *name; //Name der Liste
		char **beschreibung; //n Überschriften für versch. Größen (22cm; 26cm; ...)
		unsigned __int8 ppi; //Anazhl der Preise pro Pizza
		signed __int16 itemcount; //Anazhl der Pizzen in dieser Liste
		pizza_item *items; //Array der Items
	};
struct pizza_main //als zusammenfassung der listen
	{
		signed __int32 listcount; //Anz. der Listen
		pizza_list *lists; //Array der Listen
	};
</code></pre>
<pre><code class="language-cpp">class pizza
{
/*...*/
private: //Funktionen
	void additem (unsigned __int16 ListNr, unsigned __int32 Handle, char *Name, char *Beschreibung, float *Preise);
	void addlist (unsigned __int16 ID, char *Name, char **Beschreibungen, unsigned __int8 PpI);
	void newmain ();
/*public: konstruktor / destruktor / ...*/
};
</code></pre>
<pre><code class="language-cpp">//Konstruktors mit zu nächst statischer Zuweisung
/*...*/
char **b = (char **) malloc (3 * sizeof(char*));
b[0] = new char;	strcpy (b[0], &quot;eins&quot;);
b[1] = new char;	strcpy (b[1], &quot;zwei&quot;);
b[2] = new char;	strcpy (b[2], &quot;drei&quot;);
this-&gt;addlist (1, &quot;Liste+Nr.+1&quot;, b, 2);//neue Liste erstellen
free (b);
/*...*/
float p[2] = {4.5, 6.5};
this-&gt;additem (1, ++handle, &quot;Pizza+Nr.+1&quot;, &quot;Beschreibung+der+Pizza+Nr.+1&quot;, p);
/*...*/
</code></pre>
<p><strong>Jetzt das Stück mit Fehler:</strong> <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>
<pre><code class="language-cpp">//die Funktion mal komplett, weil ich mir den Fehler nicht erklären kann
void pizza::additem (unsigned __int16 ListNr, unsigned __int32 Handle, char *Name, char *Beschreibung, float *Preise)
{
this-&gt;Main-&gt;lists[ListNr].items = (pizza_item *) realloc (this-&gt;Main-&gt;lists[ListNr].items, (size_t) (++this-&gt;Main-&gt;lists[ListNr].itemcount * sizeof (pizza_item)));
//gibt manchmal NULL zurück (und der Debugger schreibt mir, dass der erste Zugriffsfehler stattgefunden hätte) - aber es scheint so, als ob das nur bei längeren Beschreibungen so wäre
//wenn ich die Reihenfolge ändere (strcpy (beschreibung, ...) direkt nach dem strcpy vom Namen, dann gibt es in der for-schleife für die Preise Zugriffs-Fehler
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].handle = Handle;
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].name = new char;
strcpy (this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].name, Name),
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].preis = (float *) malloc ((size_t) (this-&gt;Main-&gt;lists[ListNr].ppi * sizeof (float)));
for (unsigned __int8 i = 0; i &lt; this-&gt;Main-&gt;lists[ListNr].ppi; i++)
	{
		this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].preis[i] = Preise[i];
	}
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].beschreibung = new char;
strcpy (this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].beschreibung, Beschreibung);
}
</code></pre>
<p><strong>Danke schon mal!!!</strong></p>
<p>unskilled</p>
<p>//edit: Nur paar Fehler weggemacht, die beim Ab- und Umschreiben enstanden sind ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197042/realloc</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 01:46:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197042.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Nov 2007 23:03:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to realloc on Mon, 05 Nov 2007 23:27:29 GMT]]></title><description><![CDATA[<p>Hi - ich habe eine Klasse, die ich zum Verwalten von mehreren Pizzen etc. - ich habe mir einfach 3 structs gemacht und die dann ineinander verschachtelt speichern alles wichtige und damit sie nicht so allein sind, hab ich sie einfach ma in ne klasse gepackt ^^</p>
<p>Aber macht euch doch selbst ein Bild - hier der Code:</p>
<pre><code class="language-cpp">//die structs an sich
struct pizza_item
	{
		unsigned __int32 handle; //ein handle zum identifizieren
		char *name; //Anzeigename
		char *beschreibung; //Beschreibung dazu
		float *preis; //preise (n (eigtl 0&lt;n&lt;4, aber sollte ja theoretisch für unendlich viele ausgelegt sein) Preise für verschiedene Größe)
	};
struct pizza_list //die Pizzen sind in Listen unterteilt
	{
		unsigned __int16 id; //id zur Liste
		char *name; //Name der Liste
		char **beschreibung; //n Überschriften für versch. Größen (22cm; 26cm; ...)
		unsigned __int8 ppi; //Anazhl der Preise pro Pizza
		signed __int16 itemcount; //Anazhl der Pizzen in dieser Liste
		pizza_item *items; //Array der Items
	};
struct pizza_main //als zusammenfassung der listen
	{
		signed __int32 listcount; //Anz. der Listen
		pizza_list *lists; //Array der Listen
	};
</code></pre>
<pre><code class="language-cpp">class pizza
{
/*...*/
private: //Funktionen
	void additem (unsigned __int16 ListNr, unsigned __int32 Handle, char *Name, char *Beschreibung, float *Preise);
	void addlist (unsigned __int16 ID, char *Name, char **Beschreibungen, unsigned __int8 PpI);
	void newmain ();
/*public: konstruktor / destruktor / ...*/
};
</code></pre>
<pre><code class="language-cpp">//Konstruktors mit zu nächst statischer Zuweisung
/*...*/
char **b = (char **) malloc (3 * sizeof(char*));
b[0] = new char;	strcpy (b[0], &quot;eins&quot;);
b[1] = new char;	strcpy (b[1], &quot;zwei&quot;);
b[2] = new char;	strcpy (b[2], &quot;drei&quot;);
this-&gt;addlist (1, &quot;Liste+Nr.+1&quot;, b, 2);//neue Liste erstellen
free (b);
/*...*/
float p[2] = {4.5, 6.5};
this-&gt;additem (1, ++handle, &quot;Pizza+Nr.+1&quot;, &quot;Beschreibung+der+Pizza+Nr.+1&quot;, p);
/*...*/
</code></pre>
<p><strong>Jetzt das Stück mit Fehler:</strong> <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>
<pre><code class="language-cpp">//die Funktion mal komplett, weil ich mir den Fehler nicht erklären kann
void pizza::additem (unsigned __int16 ListNr, unsigned __int32 Handle, char *Name, char *Beschreibung, float *Preise)
{
this-&gt;Main-&gt;lists[ListNr].items = (pizza_item *) realloc (this-&gt;Main-&gt;lists[ListNr].items, (size_t) (++this-&gt;Main-&gt;lists[ListNr].itemcount * sizeof (pizza_item)));
//gibt manchmal NULL zurück (und der Debugger schreibt mir, dass der erste Zugriffsfehler stattgefunden hätte) - aber es scheint so, als ob das nur bei längeren Beschreibungen so wäre
//wenn ich die Reihenfolge ändere (strcpy (beschreibung, ...) direkt nach dem strcpy vom Namen, dann gibt es in der for-schleife für die Preise Zugriffs-Fehler
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].handle = Handle;
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].name = new char;
strcpy (this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].name, Name),
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].preis = (float *) malloc ((size_t) (this-&gt;Main-&gt;lists[ListNr].ppi * sizeof (float)));
for (unsigned __int8 i = 0; i &lt; this-&gt;Main-&gt;lists[ListNr].ppi; i++)
	{
		this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].preis[i] = Preise[i];
	}
this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].beschreibung = new char;
strcpy (this-&gt;Main-&gt;lists[ListNr].items[this-&gt;Main-&gt;lists[ListNr].itemcount-1].beschreibung, Beschreibung);
}
</code></pre>
<p><strong>Danke schon mal!!!</strong></p>
<p>unskilled</p>
<p>//edit: Nur paar Fehler weggemacht, die beim Ab- und Umschreiben enstanden sind ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398373</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 05 Nov 2007 23:27:29 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 06 Nov 2007 04:45:33 GMT]]></title><description><![CDATA[<p>hmm.. willst du C oder C++ programmieren?</p>
<p>wenn du schon Klassen verwendest, und OOP verstanden hast, dann nimm &quot;new&quot; und &quot;delete&quot; und lassen den &quot;realloc, malloc, alloc, free&quot; kram weg!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398391</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 06 Nov 2007 04:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 06 Nov 2007 06:52:52 GMT]]></title><description><![CDATA[<p>Und wenn du dir den ganzen Ärger mit der Speicherverwaltung ersparen willst, verwende lieber std::vector (o.ä.) anstelle der nackten Zeiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398402</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 06 Nov 2007 06:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 06 Nov 2007 15:47:34 GMT]]></title><description><![CDATA[<p>&quot;unskilled&quot; : Merkt man. <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="😉"
    /><br />
Mach doch mal C++ ... da sparst Du Dir und uns auch Deine Folgefrage der Art &quot;Warum bekomme ich einen SeqFault ?&quot;, &quot;Wieso fehlen da Zeichen ?&quot;, ...</p>
<pre><code class="language-cpp">struct Pizza {
   unsigned long handle; //ein handle zum identifizieren (?; s.u.)
   string name; //Anzeigename
   string beschreibung; //Beschreibung dazu
   vector&lt;float&gt; preis; //preise 
};

typedef vector&lt;Pizza&gt; PizzaListe;

typedef vector&lt;PizzaListe&gt; PizzaMenu; // Braucht man die wirklich als Typen oder reicht da nicht einfach eine entsprechende Variable ?
...
</code></pre>
<p>Damit entällt jedes malloc(), realloc(), str___(), ... und alle möglicen anderen Komplikationen.</p>
<p>Übrigens @&quot;Modellierung&quot;:<br />
0.) &quot;pizza_item&quot; ist ein unglücklicher Name, weil er fachliche (soll eine Pizza abbilden) und technische (soll Bestandteil einer Liste sein) Bezeichnung mischt. Angesichts Deiner anderen &quot;Benamsung&quot; würde ich das Teil einfach &quot;pizza&quot; nennen. Was ein &quot;PizzaMain&quot; sein soll, weiß ich nicht...<br />
1.) Ich würde mir gründlich überlegen, WAS eine Pizza identifizieren soll ... ob das wirklich ein &quot;Handle&quot; sein soll, oder ob nicht tatsächlich der name selbst die Pizza bereits eindeutig beschreibt. Was nützen Dir zwei verschiedene &quot;Pizza Margerita&quot; (die jeweils noch n verschiedene Preise haben können.... und welchen Ärger können sie Dir einhandeln ?<br />
2.) Woran soll ein Nutzer den aktuellen Preis bestimmen, wenn er nur eine Liste von Preisen hat ? Wenn die jeweiligen Preise eine Bedeutung haben, sollte das über ein Attribut von preis ersichtlich sein ... so &quot;unsichtbare Bedingungen&quot; wie &quot;Der 1. Preis ist immer der für Kunden, der 2. immer der für Angestellte, der 3. ....&quot; beissen einem irgendwann immer in der Hintern. Das sollte auch direkt mit modelliert werden. Das geht z.B. über ein</p>
<pre><code class="language-cpp">typedef pair&lt;string, unsigned int&gt; Preis;
struct Pizza {
// ...
   vector&lt;Preis&gt; preise; 
};
</code></pre>
<p>oder direkt in der</p>
<pre><code class="language-cpp">struct Pizza {
// ...
   map&lt;string, unsigned int&gt; preise; 
};
</code></pre>
<p>(Alternativ kann natürlich auch ein enum zur &quot;Preisart-Identifikation&quot; dienen)</p>
<p>3.) Ich würde den Preis in Cent als unsigned int ablegen. Spart Dir Rundungsprobleme und feiner als Cent brauchst Du doch eh nicht.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398425</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 06 Nov 2007 15:47:34 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 06 Nov 2007 18:26:28 GMT]]></title><description><![CDATA[<p>danke für eure antworten - vor allem <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/734"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/734">@simon</a></a> :&gt;<br />
ich meld mich wieder, wenns nicht klappt bzw ich fragen hab ^^<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/734"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/734">@simon</a></a>: die preise haben schon ne beschreibung - die ist in der liste (als beschreibung gekennzeichnet ^^)</p>
<p>die idee mit dem preis als int und nicht als float fand ich auch ganz ok - und hab es auch direkt so gemacht - jz geht alles - warum auch immer ^^</p>
<p>danke : &gt;</p>
<p>//edit habs jz auch mit new gemacht, aber irgendwie hab ich da was falsch gemacht <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=":/"
      alt="😕"
    /></p>
<pre><code class="language-cpp">this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1].beschreibung = new char*[PpI];
for (unsigned __int8 i = 0; i &lt; PpI; i++)
	{
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1].beschreibung[i] = new char;
		strcpy (this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1].beschreibung[i], Beschreibungen[i]);
	}
</code></pre>
<p>Ist hier irgend ein Fehler drin?<br />
Weil, wenn ich danach von außen darauf zugreife, kommt nen doller Zugriffsfehler - bei Allem anderen aber ist alles in Ordnung <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=":/"
      alt="😕"
    /><br />
Danke schon mal und noch mal und überhaupt ^^</p>
<p>Tom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1398754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1398754</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 06 Nov 2007 18:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 12:48:42 GMT]]></title><description><![CDATA[<p>ok - der Fehler lag/liegt nicht an der Schleife an sich sondern immer noch an (falschen) Speicherzugriffen :&lt;</p>
<p>noch mal den Code, wie er jetzt ist:</p>
<pre><code class="language-cpp">//structs
struct pizza_item
	{
		unsigned __int32 handle;
		char *name;
		char *beschreibung;
		unsigned __int16 *preis;
	};
struct pizza_list
	{
		unsigned __int16 id;
		char *name;
		char *beschreibungen;
		unsigned __int8 ppi; //Preise pro Item
		signed __int16 itemcount;
		pizza_item **items;
	};
struct pizza_main
	{
		signed __int16 listcount;
		pizza_list **lists;
	};
</code></pre>
<p>und</p>
<pre><code class="language-cpp">void pizza::newmain (void)
	{
		this-&gt;Main = new pizza_main;
		this-&gt;Main-&gt;listcount = 0;
		this-&gt;Main-&gt;lists = new pizza_list *[];
	}
void pizza::addlist (unsigned __int16 ID, char *Name, char *Beschreibungen, unsigned __int8 PpI)
	{
		this-&gt;Main-&gt;lists[++this-&gt;Main-&gt;listcount-1] = new pizza_list;
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;id = ID;
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;ppi = PpI;
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;name = new char[];
		strcpy (this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;name, Name);
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;items = new pizza_item *[];
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;itemcount = 0;
		this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;beschreibungen = new char[];
		strcpy (this-&gt;Main-&gt;lists[this-&gt;Main-&gt;listcount-1]-&gt;beschreibungen, Beschreibungen);
	}
void pizza::additem (unsigned __int16 ListNr, unsigned __int32 Handle, char *Name, char *Beschreibung, unsigned __int16 *Preise)
	{
		this-&gt;Main-&gt;lists[ListNr]-&gt;items[++this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1] = new pizza_item;
		this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;handle = Handle;
		this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;name = new char[];
		strcpy (this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;name, Name);
		this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;beschreibung = new char[];
		strcpy (this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;beschreibung, Beschreibung);
		this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;preis = new unsigned __int16[this-&gt;Main-&gt;lists[ListNr]-&gt;ppi];
		for (unsigned __int8 i = 0; i &lt; this-&gt;Main-&gt;lists[ListNr]-&gt;ppi; i++)
			{
				Main-&gt;lists[ListNr]-&gt;items[Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;preis[i] = Preise[i];
			}
	}
</code></pre>
<p>Ich weiß, dass es auch mit vector geht, aber ich seh keinen Vorteil darin, es anders zu machen - oder hab ich so nicht nur nen kleinen Fehler drin und es geht so gar nicht??? (glaub ich ja eigtl nicht dran, aber soll sich ja ne so anhören, als ob ich alles besser wüsste ^^)</p>
<p>Danke schon mal... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
unskilled - da ist der Name Programm ^^ <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>
<p>//eidt: hups - hatte da wirklich nen paar [] vergessen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399058</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 07 Nov 2007 12:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 12:41:56 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Ich weiß, dass es auch mit vector geht, aber ich seh keinen Vorteil darin, es anders zu machen</p>
</blockquote>
<p>Solcher Code:</p>
<pre><code>this-&gt;Main-&gt;lists[ListNr]-&gt;items[this-&gt;Main-&gt;lists[ListNr]-&gt;itemcount-1]-&gt;preis = new unsigned __int16[this-&gt;Main-&gt;lists[ListNr]-&gt;ppi];
</code></pre>
<p>tut mir in den Augen weh. Dir nicht?</p>
<p>std::vector und std::string sind dafür da, dass du dich nicht um den dynamischen Speicher kümmern musst. Damit wird dein Code viel, viel einfacher und übersichtlicher.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>oder hab ich so nicht nur nen kleinen Fehler drin und es geht so gar nicht???</p>
</blockquote>
<p>Es geht so, wie du das hier anscheinend vorhast - aber dafür reichen deine Kenntnisse offenbar nicht aus. Dein Code ist voller Fehler, weil du von dynamischer Speicheralloziierung keine Ahnung hast.</p>
<p>Du alloziierst ein Array von Pointern ohne Größenangabe, du alloziierst einen einzelnen char und schreibst dann einen ganzen String hinein, usw.</p>
<p>Das, was du da vorhast, geht auch komplett ohne irgendwelche Zeiger oder new. Schmeiß den Code weg, und benutzt vector und string.</p>
<p>Und lass das mit dem &quot;this-&gt;&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399108</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 07 Nov 2007 12:41:56 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 12:58:12 GMT]]></title><description><![CDATA[<blockquote>
<p>Du alloziierst ein Array von Pointern ohne Größenangabe</p>
</blockquote>
<p>Dafür ist es doch eine dynamische Speicherverwaltung, damit das auch geht, oder hab ich das falsch verstanden?<br />
btw: wenn ich die Länge statisch mache, wirds auch nicht besser... <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=":/"
      alt="😕"
    /></p>
<blockquote>
<p>du alloziierst einen einzelnen char und schreibst dann einen ganzen String hinein</p>
</blockquote>
<p>Ja, das hatte ich wirklich vergessen <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>Danke...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399130</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 07 Nov 2007 12:58:12 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 12:57:27 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<blockquote>
<p>Du alloziierst ein Array von Pointern ohne Größenangabe</p>
</blockquote>
<p>Dafür ist es doch eine dynamische Speicherverwaltung, damit das auch geht, oder hab ich das falsch verstanden?</p>
</blockquote>
<p>Dynamisch bedeutet nicht, dass sich das auf magische Art und Weise von selbst regelt. Dynamisch heißt hier nur, dass die Größe erst zur Laufzeit feststehen muss. Angeben musst du sie trotzdem.</p>
<p>Wenn du automatische Speicherverwaltung willst, <em>nimm std::vector und std::string</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399132</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 07 Nov 2007 12:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 12:58:33 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Dafür ist es doch eine dynamische Speicherverwaltung, damit das auch geht, oder hab ich das falsch verstanden?</p>
</blockquote>
<p>Offensichtlich. Soll der Rechner raten wieviel Speicher Du brauchst?<br />
Nee, dynamische Speicherverwaltung erlaubt Dir auch nur, dass Du Blöcke anfordern kannst deren Größe <strong>beim Compilieren</strong> noch nicht bekannt ist. Wunder kann C++ auch nicht vollbringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399133</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 07 Nov 2007 12:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 13:00:34 GMT]]></title><description><![CDATA[<p>na gut : &lt;</p>
<p>Danke ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399135</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 07 Nov 2007 13:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Wed, 07 Nov 2007 13:33:27 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>...<br />
//edit habs jz auch mit new gemacht, aber irgendwie hab ich da was falsch gemacht <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=":/"
      alt="😕"
    /><br />
...<br />
Ist hier irgend ein Fehler drin?<br />
Weil, wenn ich danach von außen darauf zugreife, kommt nen doller Zugriffsfehler - ...</p>
</blockquote>
<p>=&gt;</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>...Mach doch mal C++ ... da sparst Du Dir und uns auch Deine Folgefrage der Art &quot;Warum bekomme ich einen SeqFault ?&quot;, &quot;Wieso fehlen da Zeichen ?&quot;, ...<br />
....Damit entällt jedes malloc(), realloc(), str___(), ... und alle möglicen anderen Komplikationen....</p>
</blockquote>
<p>&quot;I told you so, i told you so, ....&quot; :p :p</p>
<p>Sorry, ich habe keine Zeit für überflüssige Fehler. <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="😉"
    /> <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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1399160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1399160</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 07 Nov 2007 13:33:27 GMT</pubDate></item></channel></rss>