c函数能返回一个数组吗?

看到这样一段代码,用来返回一个数组。但一直没有弄明白,这样的声明是什么意思?

int (*funca())[]

{

#include <stdio.h>
#include <stdlib.h>

int (*funca())[]
{
        int (*parr)[] = (int (*)[])malloc(3*sizeof(int));
        return parr;
}

int main(void)
{
        int (*parr)[] = funca();
        int i;
        (*parr)[0] = 3;
        (*parr)[1] = 4;
        (*parr)[2] = 5;
        for (i = 0; i < 3; ++i)
                printf("(*parr)[%d] = %d\n", i, (*parr)[i]);
        return 0;
}

原文地址:https://www.cnblogs.com/yayagamer/p/1809514.html