关于课堂上Exercise#1的讨论

Software Testing_1b-rev page17

Exercise#1

代码内容:

#include <stdio.h>
int main(void)
{
     char buff[10];
     memset(buff,0,sizeof(buff));
     gets(buff);
     printf(“\n The buffer entered is [%s]\n”,buff);
     return 0;
}

这段代码是否存在问题。。。

据我所猜,老师布置的这个作业中没有存在代码的语法问题。那么,问题应该就存在于从数据层面上。

gets()函数是从标准输入设备中读取字符串的函数,但是它可以无限读取,不会判断上限,以回车结束读取。所以,无法限制输入的字符数量的大小。儿buff被定义为一个容量大小只有10的字符数组,当输入的内容超过上界时,程序便会发生溢出。

通过CodeBlocks进行了一下代码测试:(将代码转换成了C++,虽说这样很不科学,但是为了避免使用C语言时的不方便...嗯,你懂的!)

代码如下:

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

int main()
{
     char buff[10];
     memset(buff,0,sizeof(buff));
     gets(buff);
     cout<<"The buffer entered is "<<buff;
     return 0;

}

很明显,当输入的数据发生溢出时,程序被迫停止运行。

时间: 2024-10-11 22:26:58

关于课堂上Exercise#1的讨论的相关文章

课堂讨论--beta版总结讨论

在课堂上,我们团队针对前段时间开发过程中存在的问题进行了讨论. 回顾发现,我们存在的问题有: (1)上传图片时无法存入数据库,所以无法再主页上显示图片. (2)无法进行注册登录,不能限制用户权限. (3)没有界面美化,所以界面很简洁. (4)没有实现智能推送功能. 我们挑选了前三个问题当做我们的下一阶段目标,因为智能推送功能暂时不知道如何实现,所以将前三个作为重点.

管理者的角色修炼-第二课总结

一.前言 第二课历时两天,主要讲了团队从招人到高绩效的各个阶段的特征,有什么问题,如何解决!结合我自己的亲身经历,反思后印证着去看,还是很有收获. 二.开场的一件小事 第二课换了一个有着男性名字的女老师,其实大家对老师的男女没什么太多的想法.但老师在开场做自我介绍后,大家对其的第一印象和行为就出现了比第一课老师不一样的东西. 问题就出在这个自我介绍上.老师介绍完的自己的名字后,说其有20多年的工作经验了:08年之前在一个外企工作,这中间,正好遇上了奥运会需要培训3000名员工和志愿者:这之后,跳

3月机器学习在线班第六课笔记--信息熵与最大熵模型

原文:https://www.zybuluo.com/frank-shaw/note/108124 信息熵 信息是个很抽象的概念.人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少.比如一本五十万字的中文书到底有多少信息量.直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题.(百度百科) 香农定义的信息熵的计算公式如下: H(X)=−∑p(xi)log(p(xi))    (i=1,2,…,n) 其中X 表示的是随机变量,随机变量的取值为(x1,x2,…,xn)

一年内自学MIT的33门课? 疯狂学习有方法

[导读]能快速掌握复杂信息,对成就卓越事业至关重要.ScottYoung的学习过程不只适用于学生,同样有助于学习复杂技能的专业知识. 能快速掌握复杂信息,对成就卓越事业至关重要.ScottYoung的学习过程不只适用于学生,同样有助于学习复杂技能的专业知识. 最近,在TED大会上,一位叫Scott Young的年轻人分享了他的一个惊人成就:他在一年之内,完成了MIT(麻省理工学院)计算机科学本科课程的全部33门课,并都通过了考试.重要的是,他完全是靠自学完成的,观看在线教程的讲座,再参加实际的考

软件工程课的一些想法

本学期的软件工程课基本上是结束了,这一学期的学习我收获了很多,其中不可否认的是建民老师是一位好老师,其中我感触最深的就是老师非常注意在课堂上与我们的互动,通过这一学期的课程,老师基本上认识了我们班上的所有同学.在课堂上,注意与同学的交流,时不时的要求同学起来回答问题这样既可以保证同学上课认证听讲,同时也能保证课堂不会沉闷.其次,通过几次小组项目,我感觉对我自己的锻炼非常大,因为以前的时候基本上没有做过这样的项目,一次严格意义上说这是对我的第一次锻炼.最后我感觉最重要的就是建民老师在上课的时候注重

【算法导论】 第十二课 跳跃表

本节课介绍了一种全新的数据结构--跳跃表 跳跃表是一种简单又有趣的动态搜索数据结构,其主要优点在于其易于实现,而且很好的保证了其具有高效的性能,即2*O(lgn)的搜索性能 在此之前我想首先谈谈链表,链表的优点在于其插入和删除只需要常数项的时间(加上查找该元素需要额外的O(n)时间),但是其查找效率只有O(n),这里顺带补充一下链表类的问题,以下先给出两个BAT公司面试时热衷于考的两个链表经典问题: 1.如何快速查找单向链表倒数第m个元素 2.如何快速判断一个单向链表是否存在环 对于链表类问题,

20180525早课记录18-Hadoop

1.昨晚若泽分享了一个开源组件叫什么? hystrix 2.jps如果看了信息不可用,我们该怎么做 ps一下进程 进入相应用户下去看 3.hadoop pid默认在哪?哪个变量和参数文件修改 默认在 /tmp 目录下在hadoop-env.sh参数文件 修改HADOOP_PID_DIR变量 4.hdfs日志显示 是在safe mode,那么哪个命令可以尝试让hdfs离开安全模式 hdfs dfsadmin -safemode leave 5.hdfs执行操作命令时,发现有权限不可访问或者写入,请

洪泰基金投资经理殷鹏:肯定不投的八类项目

对于创业者来说,寻找合适的投资机构拿到相应的融资是创业中必须要经历的一个过程:然而,对于机构投资人来说,每周需要投入超过100个小时来研究并寻找优秀的创业团队. 成立仅半年的洪泰基金截止目前,投资了50余个项目,其中,互联网+概念的部分几乎100%.在新创课的课堂上,洪泰基金资深投资经理殷鹏分享了他们对天使投资的理解.看法及这家年轻基金的投资准则. 核心观点:同一个赛道里能容下的项目不会超过3家,未来的天使投资人逐渐会被机构所代替,合投将成为趋势: 洪泰的投资原则: 1.不投没有商业计划书的项目

软件工程课程作业(四)--返回一个整数数组中最大子数组的和

伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思想 本实验要求输入一个正负数混合的整型数组,长度不限,在此数组的所有子数组中找到和最大的数组,并求出相应数组的和,且时间复杂度为O(n).我们在课堂上共同讨论了多种解决方案,这些将在下面可能的解决方案中展示,在听了同学的思路和老师的讲解之后, 我们最终选取了老师课堂上描述的比较简便的思路.如下: 在输入数组的环节,采用for无限循环加if判断截止,直到触发回车键为止,将数组记录到Array中,数组长度记录