如何在Visual Studio Code中调试时扩展数组

9

这是我的代码,它是一个用于排列的简单代码块:

void arrange(char c[], int N, int start)
{
    if (start == N)
    {
        print(c, N);
        return;
    }
    for (int i = start; i < N; i++)
    {
        swap(c[start], c[i]);
        arrange(c, N, i + 1);
        swap(c[start], c[i]);
    }
}

int main(int argc, char const *argv[])
{
    char c[] = { 'A','B','C' };
    int N = (sizeof(c) / sizeof(char));
    arrange(c, N, 0);
    return 0;
}

代码没有输出我期望的结果,我想要调试这段代码。我想观察输入数组中字符的交换情况。但是当我进行调试时,输入数组无法展开。


2
在监视窗口中使用 c,10 或者你想要显示的条目数量。 - Retired Ninja
1
另外,对于简单的char类型,内存窗口会准确地显示您想要的内容。 - Algirdas Preidžius
3
请注意,函数arrange中的参数c并不是一个数组,而只是指向字符的指针。 - user7860670
2个回答

23

如果您有一个由p指向的数组t,就像这样:

double t[5] = {0,1,2,4.5,2.3};
double *p = t;

如果您重新定义了p,则可以在调试器中观察它。只需在观察窗口中编写:

(double[5]) *p

如果我调试C程序而不是C++程序,会怎样呢? - undefined

5

arrange()中添加断点时,c数组会显示其地址0x7fffffffdd15,如下所示:

Problem

要解决这个问题,您应该在左下角看到 WATCH 部分。
像这样添加 <your_array_name>、<array_length>:

enter image description here

现在在观察窗口中,您应该看到您的数组如下:

enter image description here


1
最简单的方法!顺便问一下,你是在哪里找到这个神奇的东西的? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接