Hallo,
ich habe eigentlich eine recht simple Frage so gesehen, finde aber keine Lösung beim Googlen.
Ich beschäftige mich etwas mit dem Garbage Collector und will testen, wie lange zb. eine Variable im Stack erhalten bleibt bis dieser wieder verworfen wird.
dazu wüsste ich gern die Speicher Adresse einer Variable.
Jetzt komme ich aus dem C Bereich und hab schnell gemerkt, dass es bei C# erstmal nicht möglich ist mit Pointer/Zeiger zu arbeiten außer im Unsafe Mod.
Ich habe jetzt folgenden Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public static unsafe void Main() { int variable = int.Parse(Console.ReadLine()); int* ptr1 = &variable;
Console.WriteLine(*ptr1); Console.WriteLine( ptr1); } |
Wie kann ich jetzt die Adresse auf die der Pointer *ptr zeigt ausgeben lassen?
C#-Quelltext
1:
| Console.WriteLine(*ptr1); |
liefert mir den Wert der variable.
C#-Quelltext
1:
| Console.WriteLine(ptr1); |
ist nicht möglich mit der Meldung: Argument 1: cannot convert from 'int*' to 'string'
Gibt es da eine Lösung int* zum String zu convertieren?
Oder wie kann man das sonst noch anders lösen?
Würde es eher gehen wenn ich eine string variable nutzen würde, bzw. gibt es pointer die auf string Variablen verweisen?
Vielen Dank schonmal für eure Antworten
Moderiert von
Th69: Quote- durch C#-Tags ersetzt