今日在调试一个程序时,其中一段空间是动态分配的一维数组堆空间。
比如
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) |