一些简单的代码似乎不起作用,我不确定原因。
我正在动态创建一个整数数组。这个数组的大小显示为15,但那只是因为我正在尝试调试程序。实际大小在运行时是可变的。
我浏览了几个网站,了解如何在C ++中动态创建整数数组。像this one这样的网站出现了。他们的代码看起来像我的代码:创建一个数组,for
循环设置数组中每个元素的值。
但是在我的for循环运行后,我得到一个大小为0的数组。可能是什么问题?
这是一个使用Visual Studio在Windows上编译的极其基本的C ++程序。
答案 0 :(得分:4)
指针与数组不同,调试器只显示第一个元素内容及其地址。您的动态数组已正确创建,您可以将array[0],... array[14]
添加到watch window
,您可以在内存中查看每个变量。
或过去的阵列存储器地址到DEBUG-> Windows-> Memory-> Memory1,你可以看到内存中的每个元素都被正确初始化
如果声明静态数组,调试器应该显示所有元素:
int array2[15];
这些是基本的调试技巧,在调试应用程序时会变得很方便。
答案 1 :(得分:2)
调试器不知道它是指向数组开头的指针,它认为你有一个指向int
的普通指针(因为那是array
的类型:{{1} })。所以它显示了int*
(数组中的第一个元素)的值,这里是int
。
你的代码很好;你确实已经正确分配(并初始化)了一个15 0
的数组。