数组作为c中的参数和输入

时间:2014-03-28 20:44:25

标签: c arrays function pointers

好的,所以我理解一个函数不能返回一个数组,而是一个指向数组的指针,但我有其他问题。

我要指向的数组是否需要在函数外声明?

如果我在这个函数中为数组动态分配内存,我是否可以在调用此函数的函数中释放它?

想要在for循环中循环这个函数,这是可以接受/理想的,只要我在再次调用它之前释放内存。

2 个答案:

答案 0 :(得分:1)

是的,您可以从调用函数中释放数组的动态分配内存。如果你使用像heap这样的函数在malloc()上分配了内存,那就很好了。然后,如果您使用free()指向该内存,则可以从任何函数释放该内存。

答案 1 :(得分:-1)

如果你知道,你可以返回一个函数的数组 记忆存在进一步存在,如果是nessecary你就是自由的。

粗略可能的情况:
函数外部的非动态数组可以传递给它 该函数可以返回相同的数组(没有意义,
调用者应该已经准备好了,但这是可能的)

函数的非动态数组不能返回到外部
因为它将在函数结束时不再存在。

可以根据需要传递/返回来自任何地方的动态分配数组 只要你知道什么时候和哪里可以免费 (即不要忘记免费,不要在免费后访问它)