Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 00:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Verständnis Probleme zu Pointer

Discussion on Verständnis Probleme zu Pointer within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
emmoplayer's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 308
Received Thanks: 15
Verständnis Probleme zu Pointer

Hallo Leute, ich habe jetzt einige Selbstversuche gemacht zu Pointern, aber bin am Ende nur durcheinander gekommen. Um sicher zu gehen wollte ich euch fragen, ob ich es soweit richtig verstanden habe und wo meine Probleme sind.

Bei dem ersten Link: 1.printf gibt die Adresse von b aus. 2.printf gibt den Wert von b als Hexadezimalzahl, aber wieso !? %p steht doch eigentlich für eine Adresse. 3. printf gibt den Wert von b aus. 4.printf gibt die Adresse des Pointers. 5. printf gibt die Adresse worauf der Pointer hinzeigt, also auf die Adresse von b 6. printf wieder die Hexidezimalzahl von b, wieso aber?! 7.printf der Wert worauf der Pointer gerade in der Adresse von b zeigt.

Bei dem zweiten Link habe ich oben den pointer nicht auf die Adresse von b gesetzt sondern auf b. Ich dachte somit zeigt der Pointer immer auf die Variable b egal wo er sich im Speicher befindet, sprich wenn sich der Speicher für b ändert, ändert das auch die Adresse worauf der Pointer zeigt.
Ich verstehe jetzt ehrlich gesagt nicht warum einige Sachen nicht angezeigt werden bzw warum sich zB bei der Ausgabe von a Adresse nicht mehr die Adresse von b ausgezeigt wird, sondern wieder eine Hexadezimalzahl.

Ich weiß, dass ich 100% irgendwo Denkfehler habe bzw falsche Ansätze, aber ich verstehe nicht wieso und was genau falsch sein soll.

Über eine Erklärung würde ich mich sehr freuen.




emmoplayer is offline  
Old 02/21/2018, 23:17   #2
 
かぎつめ's Avatar
 
elite*gold: 0
Join Date: Feb 2018
Posts: 9
Received Thanks: 5
2.printf gibt den Wert aus, weil du B übergibst und nicht &B. Der Compiler interpretiert dies als Value Übergabe. (B an sich ist ein Integer / "Objekt" und kein Pointer)

6.printf *a bedeutet : den Wert auf den a zeigt (b) nicht die Adresse auf die a zeigt (&b). (Selbe wie bei 2, der Wert wird übergeben nicht die Adresse)

Erklärung:
Printf formatiert die übergebenen Parameter nur und interpretiert diese nicht. Gibst du ihm also nun einen Wert (z.B. B) bei nem "Pointer" an, formatiert er im Endeffekt trotzdem nur den Parameter in Hexadezimal egal was drin steht.
かぎつめ is offline  
Thanks
1 User
Old 02/22/2018, 13:37   #3
 
emmoplayer's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 308
Received Thanks: 15
@ かぎつめ
Danke dir vielmals. Konnte komplett den ersten Teil nachvollziehen.
Hab nur noch Probleme bei dem zweiten Fall wo ich den Pointer a=b setze.
emmoplayer is offline  
Old 02/22/2018, 16:16   #4
 
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 445
Meinst du die Stelle?
Code:
int *a = b;
Hier findet ein implizierter Cast statt, der Zeiger a zeigt einfach auf Speicherstelle 10 (hex: 0x0A), weil das der Wert von b ist. Mit der Variable b hat der Zeiger dann nichts mehr zu tun; du könntest auch
Code:
int *a = 10;
schreiben und es wäre das selbe.

Dein Programm stürzt am Ende ab, weil du den Zeiger a derefenzierst, d.h. dein PC versucht, auf die Speicherstelle 10 tatsächlich zuzugreifen. Offenbar ist das aber gar keine gültige Speicherstelle, deswegen bricht dein Betriebssystem dein Programm ab.
algernong is offline  
Reply


Similar Threads Similar Threads
[Source Code] Zum Verständnis (Proxy DLL).
10/23/2011 - Kal Hacks, Bots, Cheats & Exploits - 16 Replies
Hallo, "liebe" Community. Irgendwann - ganz sicher - kommt ihr auf die Idee, eine "vereinfachte" Art zu benutzen. Damit will ich sagen, dass euch vielleicht irgendwann (zum Beispiel) die __asm-Codes auf den Sack gehen. Zumindest war's bei mir so. Ich weiß, dass es schwer ist, an ordentliches Material zu kommen. Und wenn man daran denkt, dass es ordentliches Material gibt, dann wüsste man gern', woher man das bekommt. Naja, ich hab' für euch einen Source Code - zum Verständnis. Ich...
*oO0Night LVLING0Oo* **HOT** HACKER VERBOTEN !BITTE HABT VERSTÄNDNIS!
09/25/2010 - WarRock - 13 Replies
Hallo Leute ! Wie der Titel schon sagt, sind Hacker verboten. Ich bitte um verständniss. Es werden nur vernünftige Leute gesucht. ERKLÄRUNG 1.Ihr läuft alle in die Mitte 2. Ich nehme m249 oder m60 und töte alle 3. man darf niemanden töten 4. Es bringt bei den meisten was ab lvl 20 !
Der weg,die verständnis, einsicht und besserung...
05/07/2010 - RO Guides & Templates - 24 Replies
Hi Leute~! Ich möchte hier einen tip/guide/whatever schreiben, um einigen fragen (hoffentlich) vorzubeugen, und den bot in einigen punkten zu verbessern, die ihr villeicht nicht gewusst habt. Ich will den anfängern mein Wissen weitergeben, dieser Guide richtet sich nicht an leute die schon seit einer weile erfolgreich botten, dennoch könnte hier für jeden etwas nützliches dabeisein. Das ganze ist schon etwas älter und Openkore hat mittlerweile mehr einstellungen, grundsätzlich wird...
hilfe bei function hook verständnis
11/13/2006 - General Coding - 1 Replies
nvm.



All times are GMT +2. The time now is 00:25.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.