1
5
这不是坏的做法,但它很容易造成内存泄漏(调用方必须记住释放内存)。 我喜欢做的一件事是使用命名约定来指示可以分配哪些函数。例如,我将该函数命名为:
|
2
3
如果您将指向内存的指针返回到外部世界,那么在函数内部动态分配内存总是可以的,这样其他的东西就可以释放它,或者在函数内部释放它。 |
3
1
嗯,这很危险。我会尽量避免。 你的假设是正确的-记忆不会自动释放。 问题是这里的返回值是在堆上分配的内存,函数的调用方必须记住释放内存。你在这里分配的内存不会(由你)被释放。对API的用户设置约束总是一个坏主意。 有时(很少)这是无法避免的,所以如果你这样做,一定要非常清楚地记录下来。 |
4
1
这样做很常见。您只需在文档“api”中清楚地注意,调用方有责任在完成后释放返回的指针。 |
5
1
这不是一个坏习惯。函数返回
但它并不漂亮。它是不雅的,因为它1)强制使用动态内存,而调用者可能更愿意避免使用它;2)强制使用特定的
友善的
动态存储器
|
altair00 · 使用“realloc”调整现有阵列的大小` 2 年前 |