main()函数结束后才会释放占用的动态内存,而不是其他函数。
在你的代码中,每次调用int *sep()都会都会创建cn[4]数组,但cn[4]是局部变量,sep()函数结束后,这个数组就不存在了,如果你希望函数返回函数操作结果,可以在主调函数中定义数组cn[4],并作为sep()函数参数即可实现。例如
int main() {
int cn[4],n;
scanf("%d",&n);
sep(cn,n);
// ..........
return 0;
}
永远不要返回非static局部变量的地址
http://blog.csdn.net/l5201314131413141314/article/details/7099312