如何让一个函数返回一个指向数组的指针?在执行此操作时需要牢记的一般事项是什么?
问问题
174 次
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 回答