调试C语言时,如何查看内存?
我用的是DEV-C++。刚开始学C语言没几天,也不会调试程序。每次编了个小程序后就编译,然后运行到光标。再看运行后输出的窗口。最近碰到个问题,怎么也理解不了。请教别人后,...
我用的是DEV-C++。刚开始学C语言没几天,也不会调试程序。每次编了个小程序后就编译,然后运行到光标。再看运行后输出的窗口。最近碰到个问题,怎么也理解不了。请教别人后,说是数组超过边界,要是懂得调试和查看内存就好理解了。
程序是这样的:
例程:
#include<stdio.h>
int main()
{
char a[3];
char b[4];
scanf("%s",a);
scanf(" %s",b);
printf("%c\n%c\n%c\n%c\n%c\n%c\n%c\n",a[0],a[1],a[2],b[0],b[1],b[2],b[3]);
printf("%s\n%s\n",a,b);
return 0;
}
输入的字符串和设定的一样4个+3个。编译运行后,第一个字符无输出。但是如果我设定数组元素长度a比b少或者一样时,就算输入的字符串和设定的一样,显示也不会出错。 既然数组规定了有4个元素,为什么只能比规定的少,不然就会出错呢???
上面程序写反了,应该是:char a[4];
char b[3];
下面的第一个printf也改一下:
printf("%c\n%c\n%c\n%c\n%c\n%c\n%c\n",a[0],a[1],a[2],a[3],b[0],b[1],b[2]); 展开
程序是这样的:
例程:
#include<stdio.h>
int main()
{
char a[3];
char b[4];
scanf("%s",a);
scanf(" %s",b);
printf("%c\n%c\n%c\n%c\n%c\n%c\n%c\n",a[0],a[1],a[2],b[0],b[1],b[2],b[3]);
printf("%s\n%s\n",a,b);
return 0;
}
输入的字符串和设定的一样4个+3个。编译运行后,第一个字符无输出。但是如果我设定数组元素长度a比b少或者一样时,就算输入的字符串和设定的一样,显示也不会出错。 既然数组规定了有4个元素,为什么只能比规定的少,不然就会出错呢???
上面程序写反了,应该是:char a[4];
char b[3];
下面的第一个printf也改一下:
printf("%c\n%c\n%c\n%c\n%c\n%c\n%c\n",a[0],a[1],a[2],a[3],b[0],b[1],b[2]); 展开
4个回答
展开全部
先学单步调试吧,单步执行很简单,编译后鼠标点在你在你要设置断点的地方,然后按快捷键F9,再按F5进入debug模式,然后按F10就是单步调试,没按一次F10程序就向下走一步
追问
怎么我照着做,看不出效果呢?每次一按F10就全部运行完了。
追答
VC 单步调试
在VC++6.0中的单步调试:
调试重要的几个键:
F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点.
F5调试状态运行程序,程序执行到有断点的地方会停下来.
F10单步执行程序.
CTRL+F10运行到光标所在行.
F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面.
SHIFT+F11跳出当前所在函数.
步骤:
1,保存为c或c++文件
2,根据断点调试找到错误处。
3,采用F10或F11单步调试找到精确的错误处。其中f10是跳过函数调用,f11是进入函数体调试。一般是先用f10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用f11进入函数体一步一步调试。
4,在调试过程中,肯定得监视程序中的变量。在vc6.0的右下角有一个watch窗口,专门用来设置监视变量。具体怎样设置自己体会吧。在调试过程中,鼠标轻轻放在变量上也会显示该变量的值
5,vc6.0专门为调试设置了工具箱以方便调试的进行,打开的方法如下。右键——〉在debug(或调试)选择项的勾勾上。
展开全部
注意在字符串中是以'\0'作为字符串的结束标志 比如字符串"china" 它占内存单元不是五个字符 而是6个字符 最后一个字符为'\0' c h i n a \0
追问
那怎么查看计算机内存中数据的变化呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调试的时候有很多数据显示相关信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单步调试,会显示你的变量地址及值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询