<?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[Speicheradresse eingeben und drauf zugreifen.]]></title><description><![CDATA[<p>Hi,</p>
<p>ich beschäftige mich grade etwas mit Zeigern und Referenzen und habe mir folgendes Überlegt.</p>
<p>Ich bekomm ja von einer Instanz immer eine Adresse auf die ich zugreifen kann.</p>
<p>Nun meine Frage: Ist es möglich z. B. eine Adresse für eine Variable aus meinem Programm anzugeben (mit cin), anhand dieser Adresse darauf zuzugreifen und den wert zu ändern?</p>
<p>Ich habe es so probiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main (void)
{
    int wert = 123456;

    int *zeiger = NULL;

    cout &lt;&lt; &quot;adresse: &quot; &lt;&lt; &amp;wert &lt;&lt; endl;
    cout &lt;&lt; &quot;wert = &quot; &lt;&lt; wert &lt;&lt; endl;

    cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;

    cout &lt;&lt; &quot;bitte adresse eingeben: &quot;;
    cin &gt;&gt; zeiger;                             // &lt;&lt; hier gibts probleme :(
    cout &lt;&lt; &quot;bitte wert eingeben: &quot;;
    cin &gt;&gt; *zeiger;

    cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;

    cout &lt;&lt; &quot;adresse: &quot; &lt;&lt; &amp;wert &lt;&lt; endl;
    cout &lt;&lt; &quot;wert = &quot; &lt;&lt; wert &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>doch der compiler sagt mir:</p>
<pre><code>error C2679: Binärer Operator '&gt;&gt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int *' akzeptiert (oder keine geeignete Konvertierung möglich)	main.cpp	17
</code></pre>
<p>ist das in C++ nicht möglich oder gehe ich dafür gerade einen falschen weg?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194501/speicheradresse-eingeben-und-drauf-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 14:27:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194501.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Oct 2007 18:23:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicheradresse eingeben und drauf zugreifen. on Sun, 07 Oct 2007 18:23:40 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich beschäftige mich grade etwas mit Zeigern und Referenzen und habe mir folgendes Überlegt.</p>
<p>Ich bekomm ja von einer Instanz immer eine Adresse auf die ich zugreifen kann.</p>
<p>Nun meine Frage: Ist es möglich z. B. eine Adresse für eine Variable aus meinem Programm anzugeben (mit cin), anhand dieser Adresse darauf zuzugreifen und den wert zu ändern?</p>
<p>Ich habe es so probiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main (void)
{
    int wert = 123456;

    int *zeiger = NULL;

    cout &lt;&lt; &quot;adresse: &quot; &lt;&lt; &amp;wert &lt;&lt; endl;
    cout &lt;&lt; &quot;wert = &quot; &lt;&lt; wert &lt;&lt; endl;

    cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;

    cout &lt;&lt; &quot;bitte adresse eingeben: &quot;;
    cin &gt;&gt; zeiger;                             // &lt;&lt; hier gibts probleme :(
    cout &lt;&lt; &quot;bitte wert eingeben: &quot;;
    cin &gt;&gt; *zeiger;

    cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;

    cout &lt;&lt; &quot;adresse: &quot; &lt;&lt; &amp;wert &lt;&lt; endl;
    cout &lt;&lt; &quot;wert = &quot; &lt;&lt; wert &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>doch der compiler sagt mir:</p>
<pre><code>error C2679: Binärer Operator '&gt;&gt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'int *' akzeptiert (oder keine geeignete Konvertierung möglich)	main.cpp	17
</code></pre>
<p>ist das in C++ nicht möglich oder gehe ich dafür gerade einen falschen weg?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379969</guid><dc:creator><![CDATA[referenzierer]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicheradresse eingeben und drauf zugreifen. on Sun, 07 Oct 2007 18:42:30 GMT]]></title><description><![CDATA[<p>Lies es als int ein und mach einen reinterpret_cast&lt;&gt;. Ist sehr unsauber und unportabel. Gibst du eine ungültige Adresse an kannst du soger dein OS zerschiessen <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="😉"
    /> Nein, das Programm wird dann wohl mit einem Fehler abbrechen, aber man kann sowas nicht genau wissen, da undefiniert.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379989</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to Speicheradresse eingeben und drauf zugreifen. on Sun, 07 Oct 2007 18:46:41 GMT]]></title><description><![CDATA[<p>Du musst eine Variable vom Typ <em>long</em> (32-Bit System) oder <em>long long</em> (64-Bit System) einlesen und nach <em>(void</em>)* bzw. <em>(int</em>)* casten, da der eingabe Operator für Pointer nicht definiert ist.</p>
<p>Die Frage ist Allerding, was du vor hast. Ich kann mir kaum vorstellen, dass es einen praktischen nutzen hat, den Benutzer eine Addresse eingeben zu lassen.</p>
<p>Edit: Zu langsam. <em>int</em> einlesen geht natürlich auch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379990</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Speicheradresse eingeben und drauf zugreifen. on Sun, 07 Oct 2007 18:46:24 GMT]]></title><description><![CDATA[<p>Prinzipiell ist das möglich. Nur wird man das sicherlich NIE brauchen und man kann es sicherlich auch NIE sicher anwenden.</p>
<p>Im besten Fall wird die gewünschte Variable angesprochen, im nicht idealen Fall bekommst du eine Zugriffsverletzung (segmentation fault) und im schlimmsten Fall undefiniertes Verhalten.</p>
<p>Für <em>rein wissenschaftliche</em> Zwecke:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(int argc, char** args)
	{
		int* zeiger;
		int testobj = 12;
		unsigned int eingabe;

		cout &lt;&lt; zeiger &lt;&lt; &quot; : &quot; &lt;&lt; *zeiger &lt;&lt; endl;

		cout &lt;&lt; &quot;Adresse von testobj: &quot; &lt;&lt; &amp;testobj &lt;&lt; endl;
		cout &lt;&lt; &quot;Bitte Zeigeradresse eingeben: &quot; &lt;&lt; flush;
		cin &gt;&gt; eingabe;

		zeiger = reinterpret_cast&lt;int*&gt;(eingabe);

		*zeiger = 21;

		cout &lt;&lt; zeiger &lt;&lt; &quot; : &quot; &lt;&lt; *zeiger &lt;&lt; endl;
		cout &lt;&lt; &quot;testobj: &quot; &lt;&lt; testobj &lt;&lt; endl;

		return 0;
	}
</code></pre>
<p>Die Entwickler hatten sich schon was dabei gedacht, den <strong>operator&gt;&gt;</strong> für Zeiger nicht zu definieren.</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379994</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:46:24 GMT</pubDate></item></channel></rss>