无法在Visual Studio C++调试器中查看数组?

Lev*_*i H 3 c++ visual-studio-2010

我有以下代码:

char *DecompressChunk(Node *startNode, int arraySize)
{
    char *cubeArray = new char[arraySize];
Run Code Online (Sandbox Code Playgroud)

当我在那之后放下一个断点,当arraySize为18时,当我将鼠标悬停在数组上以尝试查看它时,只有第一个元素显示而没有别的,我可以打印它们并且它工作正常但我无法查看它们全部与VS. 如何设置它以便您可以查看所有这些,或者您可以吗?

bam*_*s53 8

您可以通过在监视窗口中添加逗号后跟大小来告诉调试器数组的大小(这称为格式说明符):

cubeArray,18
Run Code Online (Sandbox Code Playgroud)

您不能将变量或任何内容用作数组大小.

这是其他一些技巧.


如果您只是希望工具提示能够向您展示更多信息,那么这无济于事; 它只能用于观察窗.

虽然微软可能在某些特殊情况下可以改进数组的工具提示,但由于C++中数组的性质,一般情况下会非常困难.指向数组元素的指针无法知道该数组的边界.这对调试器的影响可能是最不重要的问题之一.这会产生的其他问题影响程序的安全性和正确性.

如果您避免使用原始阵列而支持更智能的类型,那么调试器可以提供更好的工具提示.例如,调试器已经知道如何显示std::vector.