操作系统学习笔记(十)---常见内存错误&内存溢出攻击与防御

本文深入探讨了常见的内存错误,包括未初始化的指针、内存越界和内存泄漏,并详细阐述了内存溢出攻击的原理。同时,介绍了三种主要的防御方法:金丝雀、DEP(数据执行防护)和ASLR(地址空间布局随机化),以增强程序的安全性。
摘要由CSDN通过智能技术生成

目录

一、常见内存错误

二、内存溢出攻击与防御


一、常见内存错误

void *malloc(size_t size);

返回值类型:void * 该类型表明malloc返回的地址空间中的数据类型是不确定,必须经过强制类型转换才可以使用。

返回值:成功时,返回malloc申请的空间的起始地址,失败时,返回NULL。

 

void free(void *ptr);

free与malloc配合使用,释放分配给该指针的内存,关于怎么知道释放多少字节,可能会在一个相近的位置存储1个整数值。

                  

j未初始化而赋值给*pi,所以bar()                         head指针可能为null,未做判断,导致可能

中使用的i是垃圾值(不确定的)。                      无法读到任何东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值