如何声明一个返回指向数组的指针的函数?

时间:2013-08-02 20:59:27

标签: c

如何有一个函数返回一个指向数组的指针,在执行此操作时需要记住的一般事项是什么?

3 个答案:

答案 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实践,因为它在堆中分配内存,但委托给另一个函数负责释放它。