<?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[Pointer an Funktion]]></title><description><![CDATA[<p>Moin!</p>
<p>Mal wieder ein Problem mit Pointern <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>
<p>Folgende Struktur ist gegeben:</p>
<pre><code class="language-cpp">void foo(void* ptr)
{
   *ptr = // irgendeine initialisierung

}

void bar(void* ptr)
{
   foo(*ptr);
}

main:
void *ptr = NULL;

bar(ptr);
</code></pre>
<p>Wo steckt der Fehler? Ich finde ihn einfach nicht. Es wird ständig gesagt &quot;error: ‘void*’ is not a pointer-to-object type&quot;! Bitte um Hilfe <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="😃"
    /><br />
Gruß Sdy</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237326/pointer-an-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 12:10:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237326.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Mar 2009 08:53:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 08:53:44 GMT]]></title><description><![CDATA[<p>Moin!</p>
<p>Mal wieder ein Problem mit Pointern <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>
<p>Folgende Struktur ist gegeben:</p>
<pre><code class="language-cpp">void foo(void* ptr)
{
   *ptr = // irgendeine initialisierung

}

void bar(void* ptr)
{
   foo(*ptr);
}

main:
void *ptr = NULL;

bar(ptr);
</code></pre>
<p>Wo steckt der Fehler? Ich finde ihn einfach nicht. Es wird ständig gesagt &quot;error: ‘void*’ is not a pointer-to-object type&quot;! Bitte um Hilfe <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="😃"
    /><br />
Gruß Sdy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686792</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Fri, 27 Mar 2009 08:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 08:58:22 GMT]]></title><description><![CDATA[<p>Liegt an &quot;irgendeiner Initialisierung&quot;... zeig die doch mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686794</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 27 Mar 2009 08:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 09:02:13 GMT]]></title><description><![CDATA[<p>ich mache dort einen aufruf auf eine .so-Datei. In der Manpage steht, dass dlopen einen void*-zeiger zurück gibt: void *dlopen(const char *filename, int flag);<br />
Es hat ja vorher geklappt, bis ich hier auf die zeiger umgestiegen bin. Es muss an der Übergabe der zeiger und der Dereferenzierung dieser liegen. (Also gehe ich mal von aus).</p>
<p>Ist sonst so alles richtig mit den Zeigern? hab ein testproghramm geschrieben, in dem die zeiger auf int-Werte zeigen, geht es. Nur mit void hat er so seine Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686795</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Fri, 27 Mar 2009 09:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 09:46:10 GMT]]></title><description><![CDATA[<p>Probier mal das hier:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void foo(void** ptr);
void bar(void** ptr);

int main(int argc, char** argv)
{
    void* ptr = NULL;

    std::cout &lt;&lt; &quot;0x&quot; &lt;&lt; ptr &lt;&lt; &quot;\n&quot;;
    bar(&amp;ptr);
    std::cout &lt;&lt; &quot;0x&quot; &lt;&lt; ptr &lt;&lt; &quot;\n&quot;;

    delete static_cast&lt;int*&gt;(ptr);

    return 0;
}

void foo(void** ptr)
{
    // Irgendeine Initialisierung (inkl.
    // implizitem type cast zu void*):
    *ptr = new int(423);
}

void bar(void** ptr)
{
   foo(ptr);
}
</code></pre>
<p><code>void</code> -Zeiger dürfen nicht dereferenziert werden. Um einen übergebenen Zeiger aus einer Funktion/Methode heraus zu ändern, muss entweder eine Referenz oder ein Zeiger auf einen Zeiger zum Einsatz kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686809</guid><dc:creator><![CDATA[skreutzer]]></dc:creator><pubDate>Fri, 27 Mar 2009 09:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 09:34:02 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-236963-and-highlight-is-.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-236963-and-highlight-is-.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686810</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 27 Mar 2009 09:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 10:42:32 GMT]]></title><description><![CDATA[<p>okay, ich werde das mit den doppel-pointern machen!<br />
Aber mit referenzen auf void geht nicht! da meckert er auf alle fälle auch rum! hast du noch ein beispiel wie ich ne referenz auf nen void pointer mache?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686837</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Fri, 27 Mar 2009 10:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 10:54:36 GMT]]></title><description><![CDATA[<p>Ja, hier:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void foo(void*&amp; ptr);
void bar(void*&amp; ptr);

int main(int argc, char** argv)
{
    void* ptr = NULL;

    std::cout &lt;&lt; &quot;0x&quot; &lt;&lt; ptr &lt;&lt; &quot;\n&quot;;
    bar(ptr);
    std::cout &lt;&lt; &quot;0x&quot; &lt;&lt; ptr &lt;&lt; &quot;\n&quot;;

    delete static_cast&lt;int*&gt;(ptr);

    return 0;
}

void foo(void*&amp; ptr)
{
    // Irgendeine Initialisierung (inkl.
    // implizitem type cast zu void*):
    ptr = new int(423);
}

void bar(void*&amp; ptr)
{
   foo(ptr);
}
</code></pre>
<p>Dem Aufruf von <code>bar()</code> darf dabei allerdings nicht mehr die Adresse von <code>ptr</code> übergeben werden, sondern <code>ptr</code> selbst wird zum Argument (d.h. statt <code>bar(&amp;ptr)</code> jetzt <code>bar(ptr)</code> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686842</guid><dc:creator><![CDATA[skreutzer]]></dc:creator><pubDate>Fri, 27 Mar 2009 10:54:36 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer an Funktion on Fri, 27 Mar 2009 13:11:09 GMT]]></title><description><![CDATA[<p>ich nehme mal die referenzen, auch wenn es ziemlich bescheuert aussieht <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>aber passieren jedenfalls nicht so viele fehler wie mit den pointern!</p>
<p>vielen dank <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/1686933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686933</guid><dc:creator><![CDATA[sheddy]]></dc:creator><pubDate>Fri, 27 Mar 2009 13:11:09 GMT</pubDate></item></channel></rss>