如何有一个函数返回一个指向数组的指针,在执行此操作时需要记住的一般事项是什么?
答案 0 :(得分:2)
int (*foo(void))[4];
将foo
声明为没有参数的函数,该参数返回指向int
的数组4的指针。
例如:
int (*p)[4];
p = foo();
答案 1 :(得分:1)
通常,函数会将指针返回给数组的第0个元素。
int * f() {
// ...
诀窍是 - 谁负责元素,函数或调用者的存储?
答案 2 :(得分:-1)
How can one have a function returning a pointer to an array
此函数返回指向数组的指针:
char * create_array() {
char * array = malloc(ARRAY_SIZE, sizeof(char));
return array;
}
但是,如果不是绝对必要,你应该避免这种做法。例如,前面的示例是不一个好的c实践,因为它在堆中分配内存,但委托给另一个函数负责释放它。