1

一些简单的代码似乎不起作用,我不知道为什么。

在此处输入图像描述

我正在动态创建一个整数数组。这个数组的大小显示为 15,但这只是因为我正在尝试调试程序。实际大小在运行时是可变的。

我浏览了一些网站,了解如何在 C++ 中动态创建整数数组。像这样的网站出现了。他们的代码看起来像我的代码:创建了一个数组,然后for循环设置数组中每个元素的值。

但是在我的 for 循环运行之后,我得到一个大小为 0 的数组。可能是什么问题?

这是一个在 Windows 上使用 Visual Studio 编译的非常基本的 C++ 程序。

4

2 回答 2

4

指针与数组不同,调试器只会显示第一个元素的内容及其地址。您的动态数组已正确创建,您可以添加array[0],... array[14]watch window,您可以看到内存中的每个变量。 在此处输入图像描述

或者通过数组内存地址到DEBUG->Windows->Memory->Memory1,可以看到内存中的每个元素都被正确初始化了

在此处输入图像描述

如果您声明静态数组,调试器应该向您显示所有元素:

 int array2[15];

这些是基本的调试技能,在调试应用程序时会变得很方便。

于 2013-02-09T00:47:46.780 回答
2

调试器不知道它是指向数组开头的指针,它认为您有一个指向 an 的普通指针int(因为这是array:的类型int*)。所以它显示了它的值int(数组中的第一个元素),它就在0这里。

你的代码很好;您确实已经正确分配(并初始化)了一个 15int秒的数组。

于 2013-02-09T00:43:30.083 回答