求程序优化!该如何解决

求程序优化!
我主要是想在这些位置插入t1.t2.t3,现在不知道怎么实现效率高一点? 
int * insert(int s[], int t3,int t1,int t2)
{
  int *b,i;
  b = (int *) malloc (sizeof(int)*288);
  for(i=0;i<93;i++)
  b [ i ]= s [ i ];
  s[0]=t3;
  for(i=1;i<93;i++)
  s [ i ]=b[i-1];

  for(i=93;i<177;i++)
  b [ i ]= s [ i ];
  s[93]=t1;
  for(i=94;i<177;i++)
  s [ i ]=b[i-1];

  for(i=177;i<288;i++)
  b [ i ]= s [ i ];
  s[177]=t2;
  for(i=178;i<288;i++)
  s [ i ]=b[i-1];
  free(b);
  b=NULL;
  return s;
}

------解决方案--------------------
用memmove
int *pBuffer = s + 177;
memmove(pBuffer+3,pBuffer,(288-177)*sizeof(int);
*(pBuffer+2)=t2;
pBuffer = s+93;
memmove(pBuffer+2,pBuffer,(177-93)*sizeof(int);
*(pBuffer+1)=t1;
pBuffer = s;
memmove(pBuffer+1,pBuffer,93*sizeof(int);
*pBuffer=t0;