这段含malloc/free的C代码是否存在少量字节内存泄漏?
问题解答
不会,这段程序不存在内存泄漏。
具体分析:
- 代码中
demo()函数里,malloc(10)分配了10字节内存,随后通过free(s)将这块内存完整释放——每一次内存分配都对应了一次正确的释放操作,没有出现分配后未释放且丢失指针的情况。 - 内存泄漏的核心是「程序分配内存后,既不释放,又失去了指向该内存的所有指针,导致这块内存永远无法被回收」,这段代码完全不符合这个条件。
- 你可能会疑惑:只往分配的内存里复制了"foo"(含终止符共4字节),剩下的6字节没使用就释放了,会不会有残留?这完全不用担心,
free操作是针对整个malloc分配的内存块,不管块内数据是否被完全使用,都会把整块内存归还给系统/内存分配器,不存在“少量字节泄漏”的情况。
内容的提问来源于stack exchange,提问作者ntk138
相关产品推荐
相关产品推荐

