Speicheradresse mit WriteLine() anzeigen ?!

Beantwortet Speicheradresse mit WriteLine() anzeigen ?!

  • Freitag, 24. Februar 2012 20:44
     
      Enthält Code

    #include "stdafx.h" #include <iostream> using namespace System; int main() { int *i_ptr; int i = 12; i_ptr = &i; std::cout << "Adresse von i = " << i_ptr << std::endl; // Console::WriteLine("Adresse von i = " + i_ptr); Console::ReadLine(); return 0; }

    Ich übergebe die Speicheradresse von i an i_ptr. (dachte ich zumindest :-) )
    Kann mir jemand sagen wie ich mit WriteLine() z.B. wie im Code Console::WriteLine("Adresse von i = " + i_ptr); die Speicheradresse ausgeben kann, bzw. in einem zweiten Schritt als Variable abzuspeichern.

Alle Antworten

  • Samstag, 25. Februar 2012 01:45
     
      Enthält Code

    Kannst du nicht direkt mit

      std::cout << "Adresse von i = " << &i << std::endl;

    Die Adresse ausgeben?
    Oder eben mit

      std::cout << "Adresse von i = " << *i_ptr << std::endl;

  • Samstag, 25. Februar 2012 08:38
     
     

    Das funktioniert ja.

     std::cout << "Adresse von i = " << i_ptr << std::endl;

    Aber ich will es ja mit WriteLine() ausgeben können.

    z.B. Console::WriteLine("Adresse von i = " + i_ptr);

    und das funktioniert nicht weil der Compiler meckert.

    Und selbst hier :

    Console::WriteLine(i_ptr);

    erhalte ich als Ausgabe das Ergebnis: True was ich momentan auch nicht verstehe..

  • Samstag, 25. Februar 2012 08:49
    Moderator
     
     Beantwortet Enthält Code

    C++/CLI kennt keine Zeiger Werte. Dukannst nichtmit WriteLine Speicheradressenausgeben außer Du castest diese mit nativem Code, also in etwas so:

    reinterpret_cast<LONG_PTR>(i_ptr)

    Ansonsten vergiß C++/CLI, außer Du bist darauf angewisen.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

  • Samstag, 25. Februar 2012 09:23
     
     

    Danke für die Antwort :-)