删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。
void rmv(int *ptr,int in,const unsigned int n)
{
unsigned int i;
for (i=in; i
}
realloc(ptr,sizeof(int)*(n-1));
}
-----------------------------------------------
插入函数,在整形数组ptr中的ptr[in]之前插入x,n是原数组的长度
void rin(int *ptr,int in,int x,const unsigned int n)
{
unsigned int i;
realloc(ptr,sizeof(int)*(n+1));
for (i=n; i>in; i--) {
*(ptr+i)=*(ptr+i-1);
}
ptr[in]=x;
}
需要包含stdlib.h头文件。
示例:
//---------------------------------------------------------------------------
#include
#include
void rmv(int *ptr,int in,const unsigned int n)
{
unsigned int i;
for (i=in; i
}
realloc(ptr,sizeof(int)*(n-1));
}
void rin(int *ptr,int in,int x,const unsigned int n)
{
unsigned int i;
realloc(ptr,sizeof(int)*(n+1));
for (i=n; i>in; i--) {
*(ptr+i)=*(ptr+i-1);
}
ptr[in]=x;
}
int main(int argc, char* argv[])
{
int *p,i;
p=calloc(6,sizeof(int));
for (i = 0; i<6; i++) {
p[i]=i;
}
*(p+2)=124;
for (i=0; i<6; i++) {
printf("%d ",p[i]);
}
putchar('\n');
rmv(p,2,6);
for (i=0; i<6; i++) {
printf("%d ",p[i]);
}
rin(p,2,258,5);
putchar('\n');
for (i=0; i<6; i++) {
printf("%d ",p[i]);
}
system("pause");
free(p);
return 0;
}
//---------------------------------------------------------------------------
main()
{
int i,a[5]={1,2,3,4},j=0,z=0;
for (i=0;i<4;i++)
if (i!=2)
a[j++]=a[i];
for (j=0;j<3;j++)
printf("%3d",a[j]);
for (i=0;i<5;i++)
if (i!=1)
a[z++]=a[i];
else
a[z++]=a[i];
for (z=0;z<5;z++)
printf("%3d",a[z]);
}