思考题2020.1.22

很多同学博客里都说c语言不安全,不严谨,那么c语言哪里不安全,不严谨?
一、不严谨性:
1.C语言在数组下标越界的时候是不会提示错误的,这导致经常自己犯了数组越界的错误而不自知,只看到最后的运行结果是错误的,最后常常要经过好几次调试才能发现越界的错误(刚学数组的时候我经常干这事o(╥﹏╥)o)
2.对变量赋值的格式对应,要求不严格,在c语言中,我要是把一个浮点型数据赋给一个整型变量,在编译的时候只会给出警告,告诉你会丢失精度,但是是可以运行的,那这样子就导致在运行后发现有错,但是很难发现哪里出现错误,这也就让后期找错修改代码要花费很多不必要的时间。(深受其害o(╥﹏╥)o)
3.C语言的switch语句由case组成,每个case结束以后都要用一个break来跳出case,否则会继续执行下面的case。这样的设定可有好有坏,好处就是可以让多种情况执行相同的操作,不大好的地方就是,如果要在需要跳出case的地方忘了break,那就会出错,并且后期检查不易看到。(不知道这算不算不严谨,个人认为算)
二、不安全性:
之前正好有看到到一些关于C语言缓冲区溢出漏洞的资料,也不知道我理解的对不对,这里就蛮说说。
上面在讲不严谨性时讲到了C语言在数组越界的时候是不会提示错误的,那么多余溢出的部分会去覆盖程序中不属于自己的内存,如果覆盖的是不重要的内存,或者没有用的内存,那还没什么事,程序会正常运行结束,要是正好覆盖的是存放了重要数据的内存,那结果不堪设想。这样黑客可以利用这个漏洞覆盖重要的变量来达到自己的目的。缓冲区溢出通常可分为堆溢出和堆栈溢出,当时看的时候我看的比较明白的是堆溢出,我感觉堆溢出就是找到你想覆盖的重要变量,再找到一个内存地址比你想覆盖的变量的地址低的地方,在这个地方开始溢出,溢到上面把这个目标变量给覆盖掉,不过要保证在覆盖的过程中程序还能正常运行,不被人发现溢出,这样才能悄悄干坏事。堆栈溢出的思想感觉跟堆溢出的思想差不多,不过做法还没看的很明白,我就不说了。
别的漏洞我就不太知道了,嘿嘿嘿~

原文地址:https://www.cnblogs.com/2002ljy/p/12229499.html

时间: 2024-10-22 06:43:32

思考题2020.1.22的相关文章

记账本开发记录——第五天(2020.1.22)

今天继续学习了javascript的相关内容,同时学习了关于表格标签的一些新标签. 首先,学习了如何使表格隔行换色.整体的思路不算复杂,用java里的思路就可以大致理解,以下是效果和代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>表格隔行换色</title> 6 <script> 7 window.onl

记账本开发记录——第六天(2020.1.22)

在学习JQ之前,我上网百度了一下,看看是否有学习该部分的必要.根据网友所说,虽然JQ的使用率不比以前,但作为一个十分经典的框架,仍然值得学习.现在很多框架都依赖于JQ,这点也是不容忽略的.在JQ中的AJAX也是个很多公司需要的功能.总的来说对于初学者来说学习JQ还是很有必要的. 在学习了一部分JS的基础上,今天学习了jQuery的基本操作.jQuery其实就是js query(查询),从名字可以看到,jQuery是对JS代码的一个简单化的框架.运用JQ可以很简单的编写出用JS来说比较复杂的案例.

Softmax函数从零开始实现——2020.2.22

?????先导?本节实现所需的包或模块. import torch import torchvision import numpy as np import sys sys.path.append("..") # 为了导?上层?录的d2lzh_pytorch import d2lzh_pytorch as d2l 1.获取数据集 ????使?Fashion-MNIST数据集,并设置批量??为256. batch_size = 256 train_iter, test_iter = d2

2020/2/22

栈和队列:7题 2小时 树链剖分+2题:6小时  https://www.cnblogs.com/yrz001030/p/12348243.html 英语单词:1小时 原文地址:https://www.cnblogs.com/yrz001030/p/12348251.html

2020年AI、CV、NLP顶会最全时间表

2020年AI.CV.NLP顶会最全时间表 2019-09-01 14:04:19 weixin_38753768 阅读数 40 2020 AI.CV.NLP主流会议时间表,包含会议举办的时间.地点.投稿截止日期.官方网址/社交媒体地址,还有H指数(谷歌学术的期刊会议评判标准,即过去5年内有至多h篇论文被引用了至少h次). 2月 AAAI 2020 会议名称: Association for the Advancement of Artificial Intelligence 会议地点: New

Python 爬取 北京市政府首都之窗信件列表-[Scrapy框架](2020年寒假小目标04)

日期:2020.01.22 博客期:130 星期三 [代码说明,如果要使用此页代码,必须在本博客页面评论区给予说明] 今天来说一说爬取的工作进展,我们的要求是爬取首都之窗的信件类型,那么我们就开始吧! 首先,先找到网页:http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow 然后找到网页的结构,发现是简单的HTML结构,那我们就可以启动Scrapy框架了. 前边说了,之前是一直报403 Forbidden的错,原因我已

苏州大学2020考研记录(2019.3-2020.2.24)

我记得上一届有个学长也给我分享了一篇考研总结文档 我希望看到这篇文章的你,能有所收获.高效备考.少走点弯路.少踏点坑,冲鸭! 1.3 月初开始准备(大神当然不需要从介个时候开始,但是窝是小菜鸡) 不要盲目考研!不要从众考研!看清形势.看清自己. 或许你的本科学历及知识技能体系已经能让你够到理想的工作.或许了解一下研究生的日常你会被劝退的.或许从一开始就应该冲一下保研.意志不够坚定也请早日放弃(等秋招时 9 月后身边同学已经拿到心仪 offer 了.跟寄几差不多的同学都冲上保研了.而且宝贵的暑假已

2020年度春季学习总结--第五周

日期:2020.03.22 博客期:167 星期日 好了,我知道这三天又没好好学习,这是为什么呢?倒不是计划的问题,因为有了计划,现在看来我在学校和在家里的感觉其实感觉差不多了,大家知道我也是真的很努力的查资料,毕竟自己自学能力差这一点是真的很令我难受!我现在发现这种每天记录,也有可能造假的问题.比如有一项内容没做完,我也要写到记录上去,这是不行的!这一周的内容虽然看起来很多,但实际上内容很轻松的!所以我也是很发愁啊,要知道这一学期真的很重要啊!这一周最最严重的一个问题就是对软件过程管理 CMM

python顺序结构设计 实验报告

安徽工程大学 Python程序设计 实验报告 班级:物流192  姓名:王跟运  学号:3190505204 日期:2020.3.22  指导老师:修宇 实验二 顺序结构设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述: 根据圆的半径计算圆面积,半径为25.请编写并运