(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 制作的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章