好的,所以我理解一个函数不能返回一个数组,而是一个指向数组的指针,但我有其他问题。
我要指向的数组是否需要在函数外声明?
如果我在这个函数中为数组动态分配内存,我是否可以在调用此函数的函数中释放它?
想要在for循环中循环这个函数,这是可以接受/理想的,只要我在再次调用它之前释放内存。
答案 0 :(得分:1)
是的,您可以从调用函数中释放数组的动态分配内存。如果你使用像heap
这样的函数在malloc()
上分配了内存,那就很好了。然后,如果您使用free()
指向该内存,则可以从任何函数释放该内存。
答案 1 :(得分:-1)
如果你知道,你可以返回一个函数的数组 记忆存在进一步存在,如果是nessecary你就是自由的。
粗略可能的情况:
函数外部的非动态数组可以传递给它
该函数可以返回相同的数组(没有意义,
调用者应该已经准备好了,但这是可能的)
函数的非动态数组不能返回到外部
因为它将在函数结束时不再存在。
可以根据需要传递/返回来自任何地方的动态分配数组 只要你知道什么时候和哪里可以免费 (即不要忘记免费,不要在免费后访问它)