删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。
void rmv(int *ptr,int in,const unsigned int n)
{
unsigned int i;
for (i=in; i<n-1; i++) {
*(ptr+i)=*(ptr+i+1);
}
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 <stdio.h>
#include <stdlib.h>
void rmv(int *ptr,int in,const unsigned int n)
{
unsigned int i;
for (i=in; i<n-1; i++) {
*(ptr+i)=*(ptr+i+1);
}
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;
}
//---------------------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考