-4

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

4

3 回答 3

2
 int (*foo(void))[4];

声明foo为一个没有参数的函数,它返回一个指向数组 4 的指针int

例如:

int (*p)[4];
p = foo();
于 2013-08-02T21:05:47.040 回答
1

通常,函数会返回指向数组第零个元素的指针。

int * f() {
  // ...

诀窍是——谁负责元素、函数或调用者的存储?

于 2013-08-02T21:05:18.277 回答
-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 实践,因为它在堆中分配内存,但将释放它的责任委托给另一个函数。

于 2013-08-02T21:06:12.370 回答