(MSVC-2019)有没有办法在调试(自动)屏幕中查看使用 malloc 制作的数组元素?

Posted

技术标签:

【中文标题】(MSVC-2019)有没有办法在调试(自动)屏幕中查看使用 malloc 制作的数组元素?【英文标题】:(MSVC-2019) Is there a way to see the array's elements made with malloc in the debug(autos) screen? 【发布时间】:2021-02-22 16:15:47 【问题描述】:

我最近学习了如何使用 fscanf_s,在修改 fscanf_s 时,我编写了一个读取文件并将其保存到数组中的代码。 (文件包含123 12 41 234 5 12 45 1 5 764 232

首先我编写了一段代码来测试我的 While 循环是否正确

void arr_calc(FILE*f, ~~) 
    int i = 0, ~~;
    ...
    rewind(f);
    int arr[10];
    while (fscanf_s(f, "%d", &arr[i++]) != EOF);

当我检查调试屏幕(自动)时,arr 显示为这样

我可以看到 arr 持有什么,但是当我将 int arr[10] 更改为 malloc 以创建像这样的可变大小数组时

void arr_calc(FILE*f, ~~) 
    int i = 0, * arr, ~~;
    ...
    rewind(f);
    arr = (int*)malloc((count) * sizeof(int));
    while (fscanf_s(f, "%d", &arr[i++]) != EOF);

我不知道arr 拿着什么。 - 它只显示第一个值

我认为这与我在使用malloc 时使用arr 的指针有关。

我的问题是:有没有办法在使用 malloc(或 realloc)时在调试汽车中看到 arr 中的元素?

如果我说错了,请纠正我,谢谢

【问题讨论】:

在监视窗口中添加类似arr,[count] 的表达式。您可以在documentation 中查看更多信息 重复:View array in Visual Studio debugger?,Why does the debugger show only one element from my array pointer? 这能回答你的问题吗? How to display a dynamically allocated array in the Visual Studio debugger? 【参考方案1】:

这是正常的,自动窗口不能指定 malloc 类型,它应该与 arr 的明显定义大小一起使用。

相反,正如社区成员所说,使用 Watch 窗口,设置arr,10 以获得您想要的。然后它将使用输入大小解析数组。

【讨论】:

以上是关于(MSVC-2019)有没有办法在调试(自动)屏幕中查看使用 malloc 制作的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法避免在 Flutter 的 Navigator _history 中出现重复?

MSVC 2019:遗留库中的 libc 外部未解决

有没有办法在没有代码的情况下使用自动布局来缩小约束?

有没有办法让 iPad 屏幕一直亮着?

NSException 自动断点调试

调试自动属性