码迷,mamicode.com
首页 > 其他好文 > 详细

Exercise 1测试

时间:2015-03-14 21:20:49      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

此篇博客旨在测试Exercise 1,发现其中问题并解决。

首先,我们使用codeblocks对Exercise 1进行编译。结果如下:

技术分享

可以发现经编译后的Exercise 1并无编译错误,只有两个warning,所以我们先不管warning内容,测试其功能

所以,我们来分析代码部分:

 

char buff[10];此行代码定义了一个10位的字符数组,所以我们要在测试时考虑输入内容:

1.为空

2.不为空但是小于十个字符

3.十个字符

4.大于十个字符

 

memset(buff,0,sizeof(buff));此行代码将buff指向的内存中设为空,即将buff数组设为空。

 

gets(buff);gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取。此时就要考虑是否会溢出的现象。

printf("\n The buffer entered is [%s]\n",buff);打印buff中的内容到屏幕上。

此时我们准备几个测试用例:

1.null

2.a

3.a123@

4.A123@#$456

5.123456789123

分别进行测试

1.测试结果如下

技术分享

无问题

2.测试结果如下

技术分享

无问题

3.测试结果如下

技术分享

无问题

4.测试结果如下

技术分享

无问题

5.测试结果如下

 

技术分享

发生报错无法运行 我们可以发现原因为数组溢出,根据实际情况我们可以选择是使用动态数组,还是规定输入字符位数解决问题

此时我们再回头看看两个warning

 

此为隐式申明函数的警告,索命memset这个函数没用在包含的头文件中进行声明,解决办法为添加头文件string.h



 

Exercise 1测试

标签:

原文地址:http://www.cnblogs.com/shuhaoz/p/4338135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!