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

时间:2012-10-31 19:06:01

标签: c++ visual-studio-2010

我有以下代码:

char *DecompressChunk(Node *startNode, int arraySize)
{
    char *cubeArray = new char[arraySize];

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

2 个答案:

答案 0 :(得分:8)

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

cubeArray,18

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

以下是一些other tricks


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

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

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

答案 1 :(得分:0)

您可以将变量用作动态数组的大小

例如

int* x = new int [size];

必须通过以下方式手动释放已创建的数组:

delete[] x;

现在回到op,我没有看到为什么所有这些都不会被显示的原因,除非它们还没有被创建,或者VS可能无法识别正常指针和数组指针之间的区别,它们被看到了通过电脑同样的事情