如何看待C#数组如何在内存中放置?

时间:2015-03-02 16:46:28

标签: c# arrays multidimensional-array

我想看看C#数组是如何放置在计算机内存中的。

我想看到的主要是两列,其中地址第二,数组元素。有可能吗?

我想从1D数组开始,但后来我想观察多维数组是如何奠定的。

问题

如何通过VisualStudio查看?

2 个答案:

答案 0 :(得分:14)

您可以使用Visual Studio调试器查看阵列布局。一个简单的例子:

    static void Main(string[] args) {
        int[] arr = { 1, 2, 3 };
        Console.ReadLine();  // Breakpoint here
    }

使用Project + Properties,Build选项卡,Platform target = x86。在指示的行上设置断点,按F5,当它命中时使用Debug + Windows + Memory + Memory 1.在地址框中键入arr。右键单击窗口并选择" 4字节整数"。看起来像这样:

enter image description here

第一个单词是"类型句柄",它的值是随机的,只是忽略它。你可以毫无疑问地猜测其余部分,你会看到数组长度和数组元素。

答案 1 :(得分:0)

您可以将WinDbg与sos或psscor扩展名一起使用。