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;
}

posted @ 2010-08-26 21:33  百分百好牛  阅读(1627)  评论(1编辑  收藏  举报