Pointer Adresse wird als Oktal ausgegeben
-
Kleine Ergänzung:
Was dein Compiler meint, ist Folgendes:
int *pVar1=(int*)0x002BF948; //dein int-Wert wird nach int* gecastet (C-Cast) int *pVar1=reinterpret_cast<int*>(0x002BF948); //dasselbe als C++-reinterpret-CastDann passen die Typen zusammen und die Zuweisung dürfte klappen. Ist aber nicht so gut, wenn du da einfach irgendeine Adresse zuweist, gibt's ganz schnell eine Zugriffsverletzung...
-
_matze schrieb:
Dann passen die Typen zusammen und die Zuweisung dürfte klappen. Ist aber nicht so gut, wenn du da einfach irgendeine Adresse zuweist, gibt's ganz schnell eine Zugriffsverletzung...
Und man sollte nicht auf die Idee kommen, dass man auf diese Weise auf den echten Arbeitsspeicher zugreift. (bei einem modernen OS). Das sind normalerweise immer nur virtuelle Adressen, die dann vom OS in die physikalische Adresse umgerechnet wird. Wenn man auf den wirklichen Speicher zugreifen will, respektive auf den eines anderen Programmes, muss man mit dem OS sprechen.
Für Windows findest du das hier in dem Bereich:
http://msdn.microsoft.com/en-us/library/aa366779(VS.85).aspx
-
THX hat mir sehr geholfen werde gleich mal versuchen, ich schreib dann nochmal.
@Drakon: PSP out? nicht mit C++ guck dir doch mal die ganzen proggis für PSP an?? fällt dir sicher was auf... *HUST* C++ *HUST*
Bis gleich probiers ma aus
Edit: Und warum gibt es dann die Zugriffsverletzung wenn ich den Wert der Variable der auf dieser Adresse gespeichert ist lesen will? wie kann ich an die Variable rankommen?
Grüße
-
Ich weiß übrigens nicht so recht, warum du 2 Threads aufgemacht hast. Ist doch das gleiche Thema, aber na ja...
-
drakon schrieb:
Wer sagt, dass das Oktal ist?
niemand. er hat nicht verstanden, was ich ihm sagen wollte.
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1655155.html#1655155
-
Also warum hab ich dann jetzt die Zugriffsrechtsverletzung? und wie kann ich die umgehn? oder kann ich nicht auf die Variable eines anderen Programms (Auch Konsolenanwendung) zugreifen und dieße manipulieren? Ich hab ja die Adresse der int Var1, aus dem Programm welches nur die Variable erstellt, und die Adresse auf dem Bildschirm ausgibt, wenn ich jetzt im Quellcode vom zweiten Prgramm die Adresse einsetze, dann müsste ich dieße doch dann manipulieren können oder?
Grüße PSPfreak
-
PSPfreak20072 schrieb:
Also warum hab ich dann jetzt die Zugriffsrechtsverletzung? und wie kann ich die umgehn? oder kann ich nicht auf die Variable eines anderen Programms (Auch Konsolenanwendung) zugreifen und dieße manipulieren? Ich hab ja die Adresse der int Var1, aus dem Programm welches nur die Variable erstellt, und die Adresse auf dem Bildschirm ausgibt, wenn ich jetzt im Quellcode vom zweiten Prgramm die Adresse einsetze, dann müsste ich dieße doch dann manipulieren können oder?
Grüße PSPfreak
Schau mal meinen letzten Beitrag an.. Den habe ich in weiser Voraussicht verfasst.. Du ihn aber anscheinend nicht gelesen..

-
Schau mal meinen letzten Beitrag an.. Den habe ich in weiser Voraussicht verfasst.. Du ihn aber anscheinend nicht gelesen..

Doch hab ich, aber wenn das wrklich nicht geht, dann hat sich jetzt alles, aber war nich ganz sicher was jetzt als ergebnis bei meinem Pointer raus kommt, aber das hat sich ja jetzt erledig.
DANKE PSPfreak
-
PSPfreak20072 schrieb:
Schau mal meinen letzten Beitrag an.. Den habe ich in weiser Voraussicht verfasst.. Du ihn aber anscheinend nicht gelesen..

Doch hab ich, aber wenn das wrklich nicht geht, dann hat sich jetzt alles, aber war nich ganz sicher was jetzt als ergebnis bei meinem Pointer raus kommt, aber das hat sich ja jetzt erledig.
DANKE PSPfreak
Gehen tut es schon, nur nicht auf die Art, wie du es versuchst. Du hast lediglich einen virtuellen Speicherbereich, der vom OS verwaltet wird. Alleine mit C++ kommst du da nicht ran (was auch gut so ist, denn das hat eine Sprache direkt nichts zu interessieren). Da musst du schon den Umweg über eine OS-API machen.
-
Naja hab nur gedacht, da das in meinem TUT o komisch geschrieben war dass das geht, und das mit der oct und hex das war pure Verwirrung, habs aber verstanden, und bin bereit weiter zu machen!
Cya PSPfreak
-
Wird da wirklich vorgeschlagen, vorgegebene Adressen zuzuweisen? Vielleicht solltest du dir überlegen, ob du mit dem Tutorial etwas lernst...
-
Nexus schrieb:
Wird da wirklich vorgeschlagen, vorgegebene Adressen zuzuweisen? Vielleicht solltest du dir überlegen, ob du mit dem Tutorial etwas lernst...
Vor allem, wenn es noch aus Zeiten kommt, als das mit dem direkten Zugriff auf den Speicher noch ging.(mit lediglicher Zeigerarithmetik)

-
Naja das Buch ist echt alt das stimmt, aber die Grundlagen sind fast dieselben, und da lernt man des schon schnell, UND ES IST UMSONST!
MfG PSPfreak
-
PSPfreak20072 schrieb:
Naja das Buch ist echt alt das stimmt, aber die Grundlagen sind fast dieselben, und da lernt man des schon schnell, UND ES IST UMSONST!
MfG PSPfreak
Klar, Grundlagen sind Grundlagen, aber auch eine Programmiersprache entwickelt sich weiter und da ändern sich unter Umständen auch mal die Grundlagen.
Was aber auch wichtig ist, dass man sich dann nicht vollständig auf das Buch verlässt, sondern auch immer mal wieder nachschaut, was denn so aktuell ist.Und es gibt auch aktuelle Bücher umsonst.

z.B hier:
http://salaswildthoughts.blogspot.com/2008/06/thinking-in-c-download-free-ebook.html
-
Drum gibt es och nette Menschen in einem neten Forum, welche alle auf ein schönes Frage Antwort Spiel warten. Nein Spaß ja klar, verlass ich mich ja auch nicht, aber wenn alle noch im vc++ 2008 funktioniert, dann ist doch okay, bei größeren Fehlern, (gab noch keine!) würde ich dann soetwas vorziehen.