Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58073
  • 博文数量: 7
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-26 22:26
文章分类
文章存档

2009年(2)

2008年(5)

我的朋友

分类: C/C++

2008-06-14 07:49:38

今日在调试一个程序时,其中一段空间是动态分配的一维数组堆空间。
 
比如
 int *a;
a = (int*)malloc(sizeof(int)*100);
 
使用VC的调试功能时,在watch(监视)中如果输入数组名称a,它前面不会出现+号,当然不能展开查看每一个数组下标对应的元素的值。如果一定要查看,需要在watch里面输入a[1], a[2]……。十分不方便。
 
我们曾记得在使用静态数组时,调试时会在watch窗口里通过+号展开查看每个下标元素的值。
比如
int a[100];
那么动态分配的存储空间就不能,原因是系统只知道a是个指针,并不知道你给他分配了多少块空间。
这样调试时太麻烦。
 
所以我要说的技巧就是,在调试阶段先暂时使用静态分配的数组,如果调试正确,在将静态分配的改为动态分配。
 
希望这个小技巧能对你有所启示。
 
(注:对c++的new所分配的空间是否有相同的性质,读者如果有兴趣,可以自行尝试,发现什么新大陆或者有什么疑惑请在此留言)
阅读(1119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~