-
空指针
char *p;//可声明一个空指针,但是使用前不管隐式或显示,得申请内存,如char *p=”123“或用malloc声明
-
内存泄漏,溢出
内存溢出就是要求分配的内存超出了系统所给的。比如给指定内存的字符数组赋值超过其大小。
内存泄漏是指向系统申请分配内存进行使用(new),但是用完后不归还(delete),导致占用有效内存。
-
越界
指向系统申请一块内存后,使用时却超出申请范围。比如一些操作内存的函数:sprintf、strcpy、strcat、vsprintf、memcpy、memset、memmove。当造成内存泄漏的代码运行时,所带来的错误是无法避免的,通常会造成
1.破坏了堆中内存内存分配信息数据
2.破坏了程序其他对象的内存空间
3.破坏了空闲内存块