C++函数可以返回数组吗?

1,如果不可以,一定要返回指针的话(指针和数组的关系我知道),我拿到这个指针时也不知道究竟多少位数据是有效的啊,万一指针指到了数组外面怎么办?,2,还有,可不可以用typedef定义一个数组类型为新的类型名,然后作为返回类型?(我只知道类,结构体什么的都是可以作为返回类型的)