Расположение объектов в памяти: странный указатель перед int - C#

Узнай цену своей работы

Формулировка задачи:

Сразу оговорюсь, что вопрос носит просто ознакомительно - спортивный характер. Итак... Есть у нас код:
class Abc
{
    int a = 1;
    int b = 2;
    int c = 3;
}
 
public class MainClass
{
    public static void Main()
    {
        Abc abc = new Abc(); 
    } // <- stop here
}
вот если мы остановимся отладчиком сразу после создания класса, нажмем заветные клавиши Ctrl + D + Y, то у нас откроется окно(в которое мы впишем имя объекта), которое укажет нам как располагается в памяти наш объект. И перед выделенными интами, у нас будет какой-то указатель. Что это за указатель?

Решение задачи: «Расположение объектов в памяти: странный указатель перед int»

textual
Листинг программы
.load sos
extension X:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded

!DumpObj 0x02612464
PDB symbol for clr.dll not loaded
Name:        ConsoleApplication14.Program+Abc
MethodTable: 00193834
EEClass:     001912c4
Size:        20(0x14) bytes
File:        ...\ConsoleApplication14.exe
Fields:
      MT    Field   Offset                 Type VT     Attr    Value Name
71a4c770  4000001        4         System.Int32  1 instance        1 a
71a4c770  4000002        8         System.Int32  1 instance        2 b
71a4c770  4000003        c         System.Int32  1 instance        3 c

!DumpMT -MD 0x00193834
EEClass:         001912c4
Module:          00192e94
Name:            ConsoleApplication14.Program+Abc
mdToken:         02000003
File:            ...\ConsoleApplication14.exe
BaseSize:        0x14
ComponentSize:   0x0
Slots in VTable: 5
Number of IFaces in IFaceMap: 0
--------------------------------------
MethodDesc Table
   Entry MethodDe    JIT Name
71954960 71656728 PreJIT System.Object.ToString()
71948790 71656730 PreJIT System.Object.Equals(System.Object)
71948360 71656750 PreJIT System.Object.GetHashCode()
719416F0 71656764 PreJIT System.Object.Finalize()
0019C030 00193828    JIT ConsoleApplication14.Program+Abc..ctor()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы