<?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[Dyn. Pointer benutzen?]]></title><description><![CDATA[<p>Hi,</p>
<p>Hier mein Problem:</p>
<pre><code>void Eingabe()
{
	int *pzahl = new int;
	cin &gt;&gt; *pZahl; 
}
</code></pre>
<p>Er sagt mit bei der &quot;cin &gt;&gt; *pZahl;&quot; das sie nicht deklariert ist.<br />
Ich denke ich hab da etwas noch nicht ganz verstanden denke ich mal, aber weis nicht genau was.^^</p>
<p>Kann ich jetzt außerhalb dieser Funktion auch auf diesen Pointer zugreifen, wenn er denn Funktioniert.<br />
Also ich weis das Pointer ja Global funktionieren,<br />
wenn man das so sagen kann, aber woher weis ich denn<br />
eigentlich wie dieser Pointer heißen sollte,<br />
wenn ich diese Funktion nicht geschrieben hätte?</p>
<p>(oder hab ich gerade nen mega denkbug?! Oo )</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324054/dyn-pointer-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:41:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324054.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Feb 2014 23:57:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Fri, 28 Feb 2014 23:57:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Hier mein Problem:</p>
<pre><code>void Eingabe()
{
	int *pzahl = new int;
	cin &gt;&gt; *pZahl; 
}
</code></pre>
<p>Er sagt mit bei der &quot;cin &gt;&gt; *pZahl;&quot; das sie nicht deklariert ist.<br />
Ich denke ich hab da etwas noch nicht ganz verstanden denke ich mal, aber weis nicht genau was.^^</p>
<p>Kann ich jetzt außerhalb dieser Funktion auch auf diesen Pointer zugreifen, wenn er denn Funktioniert.<br />
Also ich weis das Pointer ja Global funktionieren,<br />
wenn man das so sagen kann, aber woher weis ich denn<br />
eigentlich wie dieser Pointer heißen sollte,<br />
wenn ich diese Funktion nicht geschrieben hätte?</p>
<p>(oder hab ich gerade nen mega denkbug?! Oo )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385855</guid><dc:creator><![CDATA[Kalicronic]]></dc:creator><pubDate>Fri, 28 Feb 2014 23:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 00:08:54 GMT]]></title><description><![CDATA[<p>C++ unterscheidet Groß-/Kleinschreibung.<br />
Nein, dun kannst ausserhalb nicht darauf zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385858</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 01 Mar 2014 00:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 00:21:48 GMT]]></title><description><![CDATA[<ol>
<li>pzahl und pZahl sind zwei unterschiedliche identifier.</li>
<li>manuelle speicherverwaltung ist sinnlos und fehleranfällig.</li>
<li>du erzeugst hier ein speicherleck, nur weil du 2) missachtet hast...</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2385859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385859</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Sat, 01 Mar 2014 00:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 10:23:49 GMT]]></title><description><![CDATA[<p>Ahhhh, doofer Schreibfehler, danke.^^</p>
<p>Also muss ich die Dyn. Speicherverwaltung immer über die main Funktion machen?</p>
<p>Ist halt eine Schulaufgabe die wir lösen sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385904</guid><dc:creator><![CDATA[Kalicronic]]></dc:creator><pubDate>Sat, 01 Mar 2014 10:23:49 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 10:29:31 GMT]]></title><description><![CDATA[<p>Du brauchst höchstwahrscheinlich keine dynamische Speicherverwaltung.<br />
Damit deine Eingabe-Funktion aber etwas einlesen kann, musst du ihr die Variable (per Referenz/Pointer) übergeben, wo sie hinein lesen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385906</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 01 Mar 2014 10:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 10:48:59 GMT]]></title><description><![CDATA[<p>Kalicronic schrieb:</p>
<blockquote>
<p>Also muss ich die Dyn. Speicherverwaltung immer über die main Funktion machen?</p>
</blockquote>
<p>Selbstverständlich nicht!</p>
<p>Kalicronic schrieb:</p>
<blockquote>
<p>Ist halt eine Schulaufgabe die wir lösen sollen.</p>
</blockquote>
<p>Dann musst du halt mal in dein Lehrbuch schauen. Wie die Speicherverwaltung geht, wird man dir ja wohl vorher beigebracht haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385908</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 01 Mar 2014 10:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 11:15:41 GMT]]></title><description><![CDATA[<p>Wir hatten eine Beispielaufgabe auf dem PC in der Schule, aber keine infos im Hefter dazu. -.-&quot;</p>
<p>Also ich hab es jetzt in der main Funktion gemacht, aber sobald ich es mit &quot;&amp;&quot; in die Funktion übergeben will sagt er: &quot;Error: Das Argument vom Typ &quot;&quot;int**&quot;&quot; ist mit dem Parameter vom Typ Typ &quot;&quot;int*&quot;&quot; inkompatibel.&quot;</p>
<p>Also ich hab mir auch noch mal tutorials angeschaut und in einem Buch, aber irwas versteh ich da nicht so.</p>
<pre><code>int *pZahl = new int;
Eingabe (&amp;pZahl);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385911</guid><dc:creator><![CDATA[Kalicronic]]></dc:creator><pubDate>Sat, 01 Mar 2014 11:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 11:25:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>einfach</p>
<pre><code class="language-cpp">int zahl;
Eingabe(zahl);
</code></pre>
<p>Und die Funktion dann so definieren:</p>
<pre><code class="language-cpp">void Eingabe(int &amp; zahl)
{
    cin &gt;&gt; zahl;
}
</code></pre>
<p>(also den Parameter mittels Referenz übergeben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385914</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 01 Mar 2014 11:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 12:55:45 GMT]]></title><description><![CDATA[<p>Also</p>
<pre><code class="language-cpp">void Eingabe(int &amp; zahl)
{
    cin &gt;&gt; zahl;
}
int main()
{
    int x;
    Eingabe(x);
    cout&lt;&lt;x;
}
</code></pre>
<p>Wobei es aber gar keinen Grund gibt, Zeiger zu vermeiden. Zeiger haben erstmal nix mit &quot;gefährlicher&quot; manueller Speicherverwelatung zu tun.</p>
<pre><code class="language-cpp">void Eingabe(int * zahl)
{
    cin &gt;&gt; *zahl;
}
int main()
{
    int x;
    Eingabe(&amp;x);
    cout&lt;&lt;x;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385923</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 01 Mar 2014 12:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 12:44:53 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Wobei es aber gar keinen Grund gibt, Zeiger zu vermeiden. Zeiger haben erstmal nix mit &quot;gefährlicher&quot; manueller Speicherverwelatung zu tun.</p>
</blockquote>
<p>Wunderschön, wie du die andere &quot;Gefahr&quot; in deinem Beispiel demonstrierst, nämlich die unnötig umständliche Syntax, indem du es prompt falsch machst <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/2385925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385925</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 01 Mar 2014 12:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 12:58:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Wobei es aber gar keinen Grund gibt, Zeiger zu vermeiden. Zeiger haben erstmal nix mit &quot;gefährlicher&quot; manueller Speicherverwelatung zu tun.</p>
</blockquote>
<p>Wunderschön, wie du die andere &quot;Gefahr&quot; in deinem Beispiel demonstrierst, nämlich die unnötig umständliche Syntax, indem du es prompt falsch machst <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>
</blockquote>
<p>Ach, Copy&amp;Paste in diesem Textfeld des Forums…, hätte die Zeigerversion erst vorgelegen, wäre der Fehler in die Referenzfunktion passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385930</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 01 Mar 2014 12:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 13:01:31 GMT]]></title><description><![CDATA[<p>Das es mit einer normalen Deklaration funktioniert das weis ich. trotzdem danke ^^</p>
<p>Ich muss aber eine Dynamische Speicherverwaltung nutzen mit Pointer halt,<br />
also: &quot;int *pZahl=new int;&quot;</p>
<p>nur sobald ich sie in eine Funktion mit &quot;&amp;&quot; rein gebe meldet er den Fehler wie oben erwähnt.</p>
<p>Meine Aufgabe: Schreiben sie eine Funktion, welche die Teilbarkeit einer eingegebenen Zahl durch 2 untersucht.<br />
-Übergeben Sie die Parameter an die Funktion als Referenz<br />
-Verwenden Sie die dynamische Speicherverwaltung<br />
-Testen Sie die Funktion in einem Programm Zwei:Teilbarkeit</p>
<p>Hier das was ich bis jetzt geschrieben habe:</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &quot;teilen.h&quot;
#include &lt;locale&gt;
using namespace std;

void Eingabe(int *pZahl)//Liest eine integer eingabe eines User ein und gibt diesen zurück
void Verarbeitung(int *pZahl, bool *pgerade_ungerade)//Prüft Zahl auf teilbarkeit und gibt bool wert zurück
void Verarbeitung(int *pZahl, bool *pgerade_ungerade)//gibt Zahl und teilbarkeit aus

int _tmain(int argc, _TCHAR* argv[])
{
	std::locale::global(std::locale(&quot;German&quot;));		//Deutschsprachige Sonderzeichen werden erkannt und korrekt ausgegeben

	while (1)										//endloss Schleife die das Programm immer wieder neustartet
	{
		system(&quot;Cls&quot;);								//löscht Bildschirmausgabe

		int *pZahl = new int;
		Eingabe(&amp;pZahl);							//Springe in Funktion Eingabe, übergebe pZahl

		bool *pgerade_ungerade = new bool;
		Verarbeitung(&amp;pZahl, &amp;pgerade_ungerade);	//Springe in Funktion Verarbeitung, übergebe pZahl und pgerade_ungerade

		Ausgabe(&amp;pZahl, &amp;pgerade_ungerade);			//Springe in Funktion Ausgabe, übergebe pZahl und pgerade_ungerade

		system(&quot;pause&quot;);							//Programm Pausieren
	}

	return 0;										//Rückgabewert 0 (Programm ende)
}

void Eingabe(int *pZahl)			//Liest eine integer eingabe eines User ein und gibt diesen zurück
{
	cout &lt;&lt; &quot;\n\n\tInfo: Programm läuft in einer Endlosschleife!&quot;;		//Eingabe: Info an User
	cout &lt;&lt; &quot;\n\n\tZahl eingeben: &quot;;									//Eingabe: User soll Zahl eingeben
	cin &gt;&gt; *pZahl;														//Eingabe: Speicher User eingabe
}

void Verarbeitung(int *pZahl, bool *pgerade_ungerade)//Prüft Zahl auf teilbarkeit und gibt bool wert zurück
{
	if ((*pZahl % 2) == 0)	//Wenn rest gleich 0
	{
		*pgerade_ungerade = 1;	//dann gerade teilbare zahl, speicher 1 als bool wert
	}
	else
	{
		*pgerade_ungerade = 0;	//sonst ungerade  nicht teilbare zahl, speicher 0 als bool wert
	}
}

void Ausgabe(int *pZahl, bool *pgerade_ungerade)//gibt Zahl und teilbarkeit aus
{
	if (*pgerade_ungerade = 1)	//wenn bool wert 1
	{
		cout &lt;&lt; &quot;\n\t&quot; &lt;&lt; *pZahl &lt;&lt; &quot;, ist eine Gerade zahl die durch 2 Teilbar ist.&quot; &lt;&lt; &quot;\n\n\n\n\n\t&quot;; //Dann: Bildschirmausgabe: Zahl gerade und teilbarkeit anzeigen
	}
	else
	{
		cout &lt;&lt; &quot;\n\t&quot; &lt;&lt; *pZahl &lt;&lt; &quot;, ist eine Ungerade zahl die durch 2 nicht Teilbar ist.&quot; &lt;&lt; &quot;\n\n\n\n\n\t&quot;;	//Sonst: Bildschirmausgabe: Zahl ungerade und nichtteilbarkeit anzeigen
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385932</guid><dc:creator><![CDATA[Kalicronic]]></dc:creator><pubDate>Sat, 01 Mar 2014 13:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Dyn. Pointer benutzen? on Sat, 01 Mar 2014 13:05:02 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Also</p>
<pre><code class="language-cpp">void Eingabe(int &amp; zahl)
{
    cin &gt;&gt; zahl;
}
int main()
{
    int x;
    Eingabe(x);
    cout&lt;&lt;x;
}
</code></pre>
<p>Wobei es aber gar keinen Grund gibt, Zeiger zu vermeiden. Zeiger haben erstmal nix mit &quot;gefährlicher&quot; manueller Speicherverwelatung zu tun.</p>
<pre><code class="language-cpp">void Eingabe(int * zahl)
{
    cin &gt;&gt; *zahl;
}
int main()
{
    int x;
    Eingabe(&amp;x);
    cout&lt;&lt;x;
}
</code></pre>
</blockquote>
<blockquote>
<p>Ich muss aber eine Dynamische Speicherverwaltung nutzen mit Pointer halt,<br />
also: &quot;int *pZahl=new int;&quot;</p>
<p>nur sobald ich sie in eine Funktion mit &quot;&amp;&quot; rein gebe meldet er den Fehler wie oben erwähnt.</p>
</blockquote>
<pre><code class="language-cpp">void Eingabe(int &amp; zahl)
{
    cin &gt;&gt; zahl;
}
int main()
{
    int *x=new int;
    Eingabe(*x);
    cout&lt;&lt;x;
    delete x;
}
[cpp]
void Eingabe(int * zahl)
{
    cin &gt;&gt; *zahl;
}
int main()
{
    int *x=new int;
    Eingabe(x);//x ist ja schon ein Zeiger, passt schon
    cout&lt;&lt;x;
    delete x;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385933</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 01 Mar 2014 13:05:02 GMT</pubDate></item></channel></rss>