求助c语言 好像是数据溢出

 我来答
qzhao_1
2018-03-23 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.4万
采纳率:76%
帮助的人:4368万
展开全部
虽然我没有看到你的 C 语言源程序,但是根据我的编程经验,引起数据溢出的情况通常有:
(1)、数组下标越界。这个是 C 语言初学者最容易犯的错误!例如,定义如下数组:
int num[10] ; 在 C 语言中其有效的下标范围应该是:0-9,而不是:1-10!如果在源程序中引用了 num[10]变量,那么必定会引起数据溢出现象。但是在PASCAL语言中,其数组有效的下标范围就是:1-10,这就是 C 语言和 PASCAL语言的区别。
(2)、内存变量的非正常使用,导致数据溢出。例如:
char * p ;
p = (char *)malloc(10000)*sizeof(char) ; /* 为指针变量 p 动态分配内存 */
if( p == NULL )
{ /* 假设没有这段判断内存是否正确分配成功的代码,就继续执行下面语句,那么就有可能出现数据溢出错误 */
printf("Memory allocation failured !\n") ; /* 内存分配失败,则退出系统 */
exit(1) ;
}
strcpy( p, "THIS IS A TEST STRING!" ) ; /* 内存分配成功,将字符串复制到 p 变量中 */
至于说其它的还有哪些情况,那就需要在平时的编程过程中积累经验了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式