当我 malloc() 为一个函数的局部指针分配内存时, 我还需要用 free() 明确的释放吗?

2024-11-30 23:47:34
推荐回答(4个)
回答1:

是的。记住指针和它所指向的东西是完全不同的。 局部变量在函数返回时就会释放, 但是在指针变量这个问题上, 这表示指针被释放, 而 不是它所指向的对象。用 malloc() 分配的内存直到你明确释放它之前都会保留在那里。 一般地, 对于每一个 malloc() 都必须有个对应的 free() 调用。

回答2:

应该配对使用,防止内存泄露,程序过大时会报错。
但一般不用对系统没有什么影响,如果不free的话,只是该程序在运行时一直占有一定量的内存,只要程序不运行了,内存就会自动释放。对电脑内存没有影响。
建议配对使用。

回答3:

必须的。你要不释放,就不是真的高手!

回答4:

必须。