---
name: "delchain"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/delchain"
---

# delchain(3)

delete an element of a chain\_list

## NAME

delchain - delete an element of a **chain\_list**

## SYNOPSYS

```
#include "mut.h"
chain_list ∗delchain(pthead, ptdel)
chain_list ∗pthead;
chain_list ∗ptdel;
```

## PARAMETERS

- *pthead*

  Pointer to a **chain** list

- *ptdel*

  Pointer to the element to be deleted.

## DESCRIPTION

**delchain** deletes the element of the **chain\_list** pointed to by *ptdel* in the list pointed to by *pthead*. The list consistency is maintainded, and the element put back in the list of free blocks.

## RETURN VALUE

**delchain** returns a pointer to the new head of list if the *ptdel* pointer used to belong to the list. In most case, it has the value of *pthead*. If the pointer doesn't belong to the list, **NULL** is returned.

## ERROR

**"∗∗∗ mbk error ∗∗∗ delchain impossible : pointer NULL"**

At least one of the arguments are pointing to **NULL**, and that clear that such a pointer can't be deleted, or used for freeing.

## EXAMPLE

```
#include "mut.h"
void delete_match(c0, c1)
chain_list ∗c0, ∗c1;
{
chain_list ∗t0, ∗t1, ∗next;
	for (t0 = c0; t0; t0 = next)
		for (t1 = c1; t1; t1 = t1->NEXT)
			if (t1->DATA == t0->DATA)
				next = delchain(c0, t0);
}
```

## SEE ALSO

**mbk**(1), [**chain**(3)](/chain/3.md), [**addchain**(3)](/addchain/3.md), [**freechain**(3)](/freechain/3.md).
