<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>C - Pointer auf Speicher übergeben und manipulieren</title>
    <link>http://forum.geizhals.at/feed.jsp?id=604953</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re: C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5637026.html#5637026</link>
      <description>int *mach5platz() // funktion gibt Zeiger auf Integer zurück&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;int *buf = malloc(...);&amp;nbsp;&amp;nbsp;// anlegen&lt;br&gt;&amp;nbsp;&amp;nbsp;*buf = 12; // ersten Integer beschreiben&lt;br&gt;&amp;nbsp;&amp;nbsp;return buf;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;int *addr;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;addr = mach5platz();&lt;br&gt;&amp;nbsp;&amp;nbsp;printf ("%d\n", *addr);&lt;br&gt;&amp;nbsp;&amp;nbsp;exit(0);&lt;br&gt;}&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 28 Aug 2009 19:35:07 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5637026.html#5637026</guid>
      <dc:creator>e52grey</dc:creator>
      <dc:date>2009-08-28T19:35:07Z</dc:date>
    </item>
    <item>
      <title>Re(5): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134626.html#5134626</link>
      <description>siehe: &lt;a href="http://forum.geizhals.at/t604953,5134518.html#5134518" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;t604953,5134518.html#5134518&lt;/a&gt; &lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 22:14:23 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134626.html#5134626</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T22:14:23Z</dc:date>
    </item>
    <item>
      <title>Re(4): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134532.html#5134532</link>
      <description>&lt;a href="http://www.win-tux.de/c_014_008.htm#RxxobKap014008040028C21F04A18C" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.win-tux.de/&lt;wbr/&gt;c_014_008.htm#RxxobKap014008040028C21F04A18C&lt;/a&gt; &lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:31:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134532.html#5134532</guid>
      <dc:creator>tha_haze</dc:creator>
      <dc:date>2008-11-12T21:31:12Z</dc:date>
    </item>
    <item>
      <title>Re: C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134530.html#5134530</link>
      <description>Hi !&lt;br&gt;&lt;br&gt;Wenn ich mich hier nicht verlesen habe, vergewaltigst du C brutalst...&lt;br&gt;&lt;br&gt;Nur mal schnell:&lt;br&gt;&lt;br&gt; - Typischerweise hast oben die Deklarationen, dann main und dann die Funktionen (ja, ist Kosmetik)&lt;br&gt; - Ist es absicht, daß mach5platz nicht static ist ? &lt;br&gt; - Du machst ein malloc auf einen Pointer in der Länge von 5 ints - und weist es einem einzelnen int zu. Eher untypisch. Typischer wäre es, die einem Array zuzuweisen - oder einem Array of int*&lt;br&gt; - Du vermanscht Typen brutal und castest wildestens &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;int * pPlatz in der Funktionsdeklaration ist ein Pointer auf int.&lt;br&gt;Bei Aufruf übergibst einen Pointer auf int - eben den Pointer auf addr. Paßt&lt;br&gt;In der Funktion schreibst du in *pPlatz (also in addr) nun keinen Int - sondern einen Pointer auf ein Int(!) - der eben auf ein Int zeigt, das 5 enthält (am Heap)&lt;br&gt;&lt;br&gt;Ist das so gedacht ?&lt;br&gt;&lt;br&gt;Oder wolltest nicht eher&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;&lt;br&gt;int mach5platz(int **pPlatz)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pPlatz = malloc(sizeof(int)*5);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;**pPlatz = 12;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * pInt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int *addr;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(&amp;addr);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf ("%d\n", *addr);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit(0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Fehlerbehandlung, free(), ... nicht vergessen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:31:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134530.html#5134530</guid>
      <dc:creator>kombipaket</dc:creator>
      <dc:date>2008-11-12T21:31:05Z</dc:date>
    </item>
    <item>
      <title>Re(5): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134528.html#5134528</link>
      <description>Und wenn mach5Platz aber halt foo direkt modifizieren will, brauchst halt dann sowas:&lt;br&gt;&lt;br&gt;bar------&gt;foo------&gt;Int_im_Memory&lt;br&gt;&lt;br&gt;und voila: Das ist ein Doppelpointer&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:30:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134528.html#5134528</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:30:34Z</dc:date>
    </item>
    <item>
      <title>Re(6): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134526.html#5134526</link>
      <description>jop da hat er wohl recht (auch wenn ichs jetzt nicht ausprobieren kann &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;)&lt;br&gt;&lt;br&gt;was schon funktioniert, ist den wert an dieser adresse zu ändern. die adresse selbst nicht, stimmt wohl.&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:30:15 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134526.html#5134526</guid>
      <dc:creator>tha_haze</dc:creator>
      <dc:date>2008-11-12T21:30:15Z</dc:date>
    </item>
    <item>
      <title>Re(4): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134523.html#5134523</link>
      <description>Da hilft keine Literatur. Das musst einfach checken.&lt;br&gt;&lt;br&gt;Probieren wir es mal halbwechs grafisch&lt;br&gt;&lt;br&gt;&lt;br&gt;Ein Pointer:&lt;br&gt;&lt;br&gt;int* foo;&lt;br&gt;foo----------&gt;Int_im_Memory&lt;br&gt;&lt;br&gt;&lt;br&gt;So bei einem Funktionsaufruf&amp;nbsp;&amp;nbsp;schaut das dann so aus&lt;br&gt;&lt;br&gt;mach5Platz(int* bar);&lt;br&gt;&lt;br&gt;foo----------&gt;Int_im_Memory&lt;br&gt;bar--------------^&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zeigt auf den gleichen Speicherbereich&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:29:10 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134523.html#5134523</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:29:10Z</dc:date>
    </item>
    <item>
      <title>Re(5): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134518.html#5134518</link>
      <description>aso...&lt;br&gt;&lt;br&gt;also wenn ich einen pointer übergebe, &lt;b&gt;dann&lt;/b&gt; bekommt meine funktion eine lokale kopie des pointers - arbeitet aber mit den orginaldaten.&lt;br&gt;aber auf den originalpointer hat die funktion nachtürlich keinen zugriff.&lt;br&gt;und mit dem doppelpointer klappts dann&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:25:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134518.html#5134518</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:25:35Z</dc:date>
    </item>
    <item>
      <title>Re(3): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134513.html#5134513</link>
      <description>Das mit den Doppelpointern ist echt heftig.&lt;br&gt;&lt;br&gt;Leider habe ich noch keine Literatur gefunden in der das gut erklärt wird&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:23:45 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134513.html#5134513</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:23:45Z</dc:date>
    </item>
    <item>
      <title>Re(4): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134512.html#5134512</link>
      <description>No Problem &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:23:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134512.html#5134512</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:23:36Z</dc:date>
    </item>
    <item>
      <title>Re(4): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134510.html#5134510</link>
      <description>Nein muss sein.&lt;br&gt;&lt;br&gt;Weil du in der Funktion sonst nie den Original Pointer in main änderst, sonder nur die Kopie die die Funktion als Argument bekommt.&lt;br&gt;&lt;br&gt;Info: Alle Argumente in C werden ja immer über den Stack kopiert.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:23:04 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134510.html#5134510</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:23:04Z</dc:date>
    </item>
    <item>
      <title>Re(3): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134507.html#5134507</link>
      <description>Funktioniert!&lt;br&gt;&lt;br&gt;&lt;br&gt;Ajo nochmal vielen Dank für deine Hilfe vom letzten mal!&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:19:37 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134507.html#5134507</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:19:37Z</dc:date>
    </item>
    <item>
      <title>Re(3): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134502.html#5134502</link>
      <description>Muss es denn ein Doppelpointer sein, sollte doch so auch gehen AFAIK, oder? &lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:16:43 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134502.html#5134502</guid>
      <dc:creator>tha_haze</dc:creator>
      <dc:date>2008-11-12T21:16:43Z</dc:date>
    </item>
    <item>
      <title>Re(4): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134494.html#5134494</link>
      <description>das ist noch ein fehler drinnen ich editiere es gleich&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:13:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134494.html#5134494</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:13:05Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134499.html#5134499</link>
      <description>int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int* addr&amp;nbsp;&amp;nbsp;= NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(&amp;addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Adresse auf ptr übergeben&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("%d",*addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// gib den Wert addr[0] aus auf den addr zeigt&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int mach5platz(int ** pPlatz)&amp;nbsp;&amp;nbsp; // &amp;lt;- pPlatz pointer auf pointer&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * test;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ein uninitialisierter ptr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test = malloc( sizeof(int) *5);&amp;nbsp;&amp;nbsp;// ok ein int array mit Größe 5&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(test) = 999;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ok in index 0 schreiben wir 999&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pPlatz = test;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;Doppelpointer machen doch Spass! &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:12:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134499.html#5134499</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:12:53Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134493.html#5134493</link>
      <description>int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int* addr&amp;nbsp;&amp;nbsp;= NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("%d",*addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// gib den Wert addr[0] aus auf den addr zeigt&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int mach5platz(int ** pPlatz)&amp;nbsp;&amp;nbsp; // &amp;lt;- pPlatz pointer auf pointer&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * test;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ein uninitialisierter ptr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test = malloc( sizeof(int) *5);&amp;nbsp;&amp;nbsp;// ok ein int array mit Größe 5&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(test) = 999;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ok in index 0 schreiben wir 999&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*pPlatz = test;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:12:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134493.html#5134493</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:12:53Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134492.html#5134492</link>
      <description>das ist ja auch das hatschere workarround&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:12:41 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134492.html#5134492</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:12:41Z</dc:date>
    </item>
    <item>
      <title>Re: C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134482.html#5134482</link>
      <description>Ach wieder mal &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Da ist aber viel falsch/komisch:&lt;br&gt;&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * pInt = NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // gut ein ptr auf 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int addr = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ein integer mit 0 initialisiert&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(&amp;addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // die Adresse des int word übergeben&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pInt = (int*) addr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// DANGER!: int* ist nicht immer &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // gleich groß wie int! (zb 64Bit Os)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Also Inhalt eines Int als Adresse zu &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // verwenden ist eine Todsünde &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("%d",*pInt);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// gib den Wert aus auf den pInt zeigt&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;int mach5platz(int * pPlatz)&amp;nbsp;&amp;nbsp; // &amp;lt;- pPlatz ist Addresse auf addr von oben&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * test;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// ein uninitialisierter ptr&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test = malloc( sizeof(int) *5);&amp;nbsp;&amp;nbsp;// ok ein int array mit Größe 5&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(test) = 999;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ok in index 0 schreiben wir 999&lt;br&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;pPlatz = test;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // naja der compiler frisst es schon &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt; // du biegst den ptr pPlatz auf eine neue Adresse. Der hat halt vorher&lt;br&gt; // auf addr gezeigt, und nun zeigt er auf test. addr veränderst du damit &lt;br&gt; // nicht!&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; *pPlatz = (int)test;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// jetzt schreibst du in addr rein. also die&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Adresse von test als wert int addr &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;Richtige Lösung im nächsten Post...&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:07:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134482.html#5134482</guid>
      <dc:creator>Switi</dc:creator>
      <dc:date>2008-11-12T21:07:48Z</dc:date>
    </item>
    <item>
      <title>Re(3): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134480.html#5134480</link>
      <description>Ja weil du&lt;br&gt;&lt;br&gt;1) nicht NULL initialsieren musst&lt;br&gt;2) es keine Var "test" gibt...&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:07:10 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134480.html#5134480</guid>
      <dc:creator>tha_haze</dc:creator>
      <dc:date>2008-11-12T21:07:10Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134496.html#5134496</link>
      <description>&lt;blockquote&gt;&lt;em&gt; pPlatz = test; =&gt; wäre ja eig die Adresse von pPlatz auf die von test zu setzen.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Da hast du auch wieder recht!&lt;br&gt;&lt;br&gt;&lt;br&gt;Ich will ja eigentlich folgendes machen:&lt;br&gt;in der funktion platz machen und auf den ptr den ich mitübergebe "schreiben"&lt;br&gt;&lt;pre&gt;&lt;br&gt;int mach5platz(int * pPlatz)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pPlatz = malloc( sizeof(int) *5);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(pPlatz+0) = 999;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * pInt = NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(pInt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("%d", *pInt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;br&gt;nur das geht ja leider gaaar nicht&lt;img src="schief.gif" width="16" height="19" align="absmiddle" alt=":-/"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:04:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134496.html#5134496</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:04:42Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134475.html#5134475</link>
      <description>&lt;blockquote&gt;&lt;em&gt; pPlatz = test; =&gt; wäre ja eig die Adresse von pPlatz auf die von test zu setzen.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Da hast du auch wieder recht!&lt;br&gt;&lt;br&gt;wenn ich ja eigentlich folgendes:&lt;br&gt;&lt;pre&gt;&lt;br&gt;int mach5platz(int * pPlatz)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pPlatz = malloc( sizeof(int) *5);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(pPlatz) = 999;&lt;br&gt;&amp;nbsp;&amp;nbsp; *pPlatz = (int)test;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * pInt = NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(pInt);&lt;br&gt;	printf("%d", *pInt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;br&gt;nur das geht ja leider gaaar nicht&lt;img src="schief.gif" width="16" height="19" align="absmiddle" alt=":-/"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:04:42 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134475.html#5134475</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:04:42Z</dc:date>
    </item>
    <item>
      <title>Re(2): C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134471.html#5134471</link>
      <description>Ja klar, das sollte ich natürlich auch hinschreiben!&lt;br&gt;&lt;br&gt;Ich will in der funktion Platz "machen"&lt;br&gt;in meiner "richtigen" Funktion wird darin eine datei geöffnet und in den "gemallocten" Platz geladen.&lt;br&gt;&lt;br&gt;Leider klappt das nur so, wie von mir gelöst (unschön und umständlich!)&lt;br&gt;und nicht so wie im kommentar(und ohne nachträglichen typecast+kopie)&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 21:00:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134471.html#5134471</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T21:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134443.html#5134443</link>
      <description>Was soll in pPlatz dann schlussendlich sein?&lt;br&gt;Momentan ists ja die Adresse des Pointers -&gt; *pPlatz = (int)test;&lt;br&gt;pPlatz = test; =&gt; wäre ja eig die Adresse von pPlatz auf die von test zu setzen.&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 20:51:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134443.html#5134443</guid>
      <dc:creator>tha_haze</dc:creator>
      <dc:date>2008-11-12T20:51:36Z</dc:date>
    </item>
    <item>
      <title>C - Pointer auf Speicher übergeben und manipulieren</title>
      <link>http://forum.geizhals.at/t604953,5134408.html#5134408</link>
      <description>Ich hab wieder ein kleines, diesmal mehr kosmetisches Problem. (Workarround funktioniert, würde aber trotzdem wissen ob/wie das funktioniert)&lt;br&gt;&lt;br&gt;also, hier mein (nicht) funktionierender code:&lt;br&gt;&lt;pre&gt;&lt;br&gt;#include &lt;stdio h/&gt;&lt;br&gt;#include &lt;stdlib h/&gt;&lt;br&gt;int mach5platz(int * pPlatz);&lt;br&gt;int mach5platz(int * pPlatz)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;int * test;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test = malloc( sizeof(int) *5);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*(test) = 999;&lt;br&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;pPlatz = test;&amp;nbsp;&amp;nbsp;//&amp;lt;- funktioniert nicht&lt;br&gt;&amp;nbsp;&amp;nbsp; *pPlatz = (int)test;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int * pInt = NULL;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int addr = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mach5platz(&amp;addr);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pInt = (int*) addr;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("%d",*pInt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;br&gt;So wie ich es machen möchte, klappts leider nicht.&lt;br&gt;Sondern nur über den Umweg wie oben gezeigt.&lt;br&gt;Und ich verstehe irgendwie nicht &lt;i&gt;warum&lt;/i&gt; das nicht so funktioniert &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 12 Nov 2008 20:36:25 GMT</pubDate>
      <guid>http://forum.geizhals.at/t604953,5134408.html#5134408</guid>
      <dc:creator>RoHS</dc:creator>
      <dc:date>2008-11-12T20:36:25Z</dc:date>
    </item>
  </channel>
</rss>
