第1个回答 推荐于2016-11-24
//---------------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void insert(void *a,void *ins,int index,size_t n,size_t width)
/*在a指向的数组中的index下标位置插入ins指向的地址保存的值,a指向的数组中有n个宽度为width的元素*/
{
char *tmp=malloc(width*(n-index-1));
memcpy(tmp,(char *)a+(index*width),width*(n-index-1));
memcpy((char *)a+index*width,ins,width);
memcpy((char *)a+width*(index+1),tmp,width*(n-index-1));
free(tmp);
}
int main(int argc, char* argv[])
{
int a[10]={1,2,3,4,5};
int in=7,i;
insert(a,&in,6,10,sizeof(int));
for (i = 0; i<10; i++) {
printf("%d\t",a[i]);
}
return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳