C语言数组删除增加一个元素

时间:2023-03-09 13:22:29
C语言数组删除增加一个元素

malloc,realloc,calloc一直很头疼,这次笔试题需要在数组后重新分配新的空间的代码是:

//删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度。
void rmv(int *ptr,int in,const unsigned int n)
{
unsigned int i;
for (i=in; i<n-; i++) {
*(ptr+i)=*(ptr+i+);
}
realloc(ptr,sizeof(int)*(n-));
} ----------------------------------------------- //插入函数,在整形数组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+));
for (i=n; i>in; i--) {
*(ptr+i)=*(ptr+i-);
}
ptr[in]=x;
} //需要包含stdlib.h头文件。

malloc分配空间之后需要free掉,以后得记住了。

附带删除一个单向链表的最中间元素,不能使用两次循环。

void delMiddle(link *head)
{
if(head == NULL)
return;
else if(head->next == NULL)
{
delete head;
return;
}
else
{
link *low = head;
link *fast = head->next;
while(fast != NULL && fast->next != NULL)
{
fast = fast->next->next;
if(fast == NULL)
break;
low = low->next;
}
link *temp = low->next;
low->next = low->next->next;
delete temp; }
}

相关文章