C语言常见内存管理错误:
- 内存没有分配就开始访问。这常常是分配内存后,没有返回值。如果内存分配失败了,就开始使用,就会发生解引用空指针。
- 内存没有初始化,那么其中的值是不确定的。如果程序员当做值是0来使用,就出现了错误。
- 内存用完没有释放。这导致内存泄露。
- 内存重复释放。如果这块内存已经分配给程序的其它部分,则影响了其它部分的功能。如果这块内存还没有分配给程序的其它部分,则没有危害。
- 释放内存后又访问。如果这块内存已经分配给程序的其它部分,那么执行写操作就影响了新使用者的功能,执行读操作,则读出了新使用者写入的值。如果这块内存还没有分配给程序的其它部分,因为释放内存只是标志这块内存没有被使用,并不清空其中的内容,所以,那么老的内容还在,可以读取,写入内容也没有危害。