memcpy(b,a,sizeof(a));
for(i=1;i<N;i++) func(a,b,n);
くらいにしなきゃだめでしょう。
2乗じゃなくて掛け算する関数を作ればいい。