hur.cn - 华软网

 热门搜索

调试的时候为什么看不到int *p数组的其他数据?只能看到p首地址的数据~

  作者:未知    来源:网络    更新时间:2011/7/29
C++">
#include <stdio.h>
#include <windows.h>
void main()
{
int *p=new int [10];
int a[10];
for (int i=0;i<10;i++)
{
p[i]=i;
a[i]=i;
printf("p=%d,a=%d\n",p[i],a[i]);
}
delete p;
system("pause");
}

VC6里我只能根据首地址打开内存查看1,2.3……的值,有没有能像看局部变量窗口那样直接就能看到所有的值?
在vs2010里我连内存查看窗口都没找着啊,那2010怎么看?~~
为啥在局部变量里看不到p所有的值,而a却能看到所有的值?
---华软 网友回答---
因为p是int*,而a是a[10],所以 ide知道a的长度,而不知道p有多长。
---华软网友回复---
1楼得是正解!
---华软网友回复---
引用 1 楼 ndy_w 的回复:
因为p是int*,而a是a[10],所以 ide知道a的长度,而不知道p有多长。

那怎么才能看到p的所有值?只能在内存里么?
---华软网友回复---
memory view

---华软网友回复---
在debug的监视窗口,想看哪个的值用基地址+偏远量: *(p+i)
---华软网友回复---
因为是new出来的,不是数组,所以看不到,你也可以用内存查看,或者自己写数组
p[n], n表示您想查看的数组的下标
---华软网友回复---
int* 可以随意开辟很大空间,编译器就这么设计的,如果也能看到显示的篇幅可能会很大。
---华软网友回复---
引用 5 楼 xxq123321 的回复:
在debug的监视窗口,想看哪个的值用基地址+偏远量: *(p+i)


就这个
---华软网友回复---
呵呵,谢谢了,第一次用VS2010,太难找了      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。