积极答复者
【新手】关于数组元素个数的问题

问题
答案
-
这个问题就和C中如何对数组分配内存空间有关。因为C中数组是连续分配,且这里的x , y只是数组的一个指针,因为数组并没有明显的结束符,而且你的循环也没有检测数组是否结束。所以,当第一个x数组循环结束后,他就会去读取x数组所在空间的下一个位置的值,况且,你的代码运行时,分配的紧挨着x空间的内容是y数组,所以他就输出了y数组的第一个元素。
下面是我这里的输出结果。
5,10,15,-858993460,2,4,6
因为我的环境下x,y数组没有连续分配,所以读完x数组后,他所读到的就是一个未知的值。
一个比较好的方法去看你的数组分配情况,打开VS的调试〉窗口〉内存1
然后在地址输入框中输入你的数组 x,回车。你就可以看到x数组所在内存的情况了。
Bob Bao
Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。- 已编辑 Jie Bao 2015年10月26日 3:51
- 已建议为答案 Jie Bao 2015年10月26日 3:52
- 已标记为答案 May Wang - MSFT 2015年11月3日 9:38
全部回复
-
这个问题就和C中如何对数组分配内存空间有关。因为C中数组是连续分配,且这里的x , y只是数组的一个指针,因为数组并没有明显的结束符,而且你的循环也没有检测数组是否结束。所以,当第一个x数组循环结束后,他就会去读取x数组所在空间的下一个位置的值,况且,你的代码运行时,分配的紧挨着x空间的内容是y数组,所以他就输出了y数组的第一个元素。
下面是我这里的输出结果。
5,10,15,-858993460,2,4,6
因为我的环境下x,y数组没有连续分配,所以读完x数组后,他所读到的就是一个未知的值。
一个比较好的方法去看你的数组分配情况,打开VS的调试〉窗口〉内存1
然后在地址输入框中输入你的数组 x,回车。你就可以看到x数组所在内存的情况了。
Bob Bao
Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。- 已编辑 Jie Bao 2015年10月26日 3:51
- 已建议为答案 Jie Bao 2015年10月26日 3:52
- 已标记为答案 May Wang - MSFT 2015年11月3日 9:38