内存溢出实际上就是内存越界:
常见的有两种情况:调用栈溢出,缓冲区溢出
1、缓冲区溢出
程序为了临时存取数据的需要,一般会分配一些内存空间称为缓冲区。如果向缓冲区中写入了缓冲区内无法容纳的数据,就会造成缓冲区以外的存储单元的数据被改写,成为缓冲区溢出。
2、调用栈溢出
每个进程的栈空间都是有限的,一般默认是8M,可以进行调整。栈满了以后执行进栈操作就是上溢,栈空了以后执行退栈操作就是下溢。
如果在函数中申请的局部变量空间过大,会导致栈空间不够用而栈出现溢出。
内存溢出实际上就是内存越界:
常见的有两种情况:调用栈溢出,缓冲区溢出
1、缓冲区溢出
程序为了临时存取数据的需要,一般会分配一些内存空间称为缓冲区。如果向缓冲区中写入了缓冲区内无法容纳的数据,就会造成缓冲区以外的存储单元的数据被改写,成为缓冲区溢出。
2、调用栈溢出
每个进程的栈空间都是有限的,一般默认是8M,可以进行调整。栈满了以后执行进栈操作就是上溢,栈空了以后执行退栈操作就是下溢。
如果在函数中申请的局部变量空间过大,会导致栈空间不够用而栈出现溢出。