---
name: "CK_ARRAY_FOREACH"
section: "3"
platform: "linux"
package: "libck-dev"
version: "0.7.2-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CK_ARRAY_FOREACH"
---

# CK\_ARRAY\_FOREACH(3)

iterate through an array

## NAME

**CK\_ARRAY\_FOREACH** – iterate through an array

## LIBRARY

Concurrency Kit (libck, -lck)

## SYNOPSIS

**#include \<ck\_array.h\>**

*bool*\

**CK\_ARRAY\_FOREACH**(*ck\_array\_t \*array*, *ck\_array\_iterator\_t \*iterator*, *void \*\*b*);

## DESCRIPTION

The **CK\_ARRAY\_FOREACH**(*3*) macro iterates through the array pointed to by *array*. A pointer to an iterator object must be specified by *iterator* and *b* must point to a void pointer.

## EXAMPLE

```
#include <ck_array.h>
/* Assume this was already previously initialized. */
ck_array_t array;
void
example(void)
{
	ck_array_iterator_t iterator;
	void *pointer;
	CK_ARRAY_FOREACH(&array, &iterator, &pointer) {
		do_something(pointer);
	}
}
```

## RETURN VALUES

This macro has no return value.

## SEE ALSO

[ck\_array\_init(3)](/ck_array_init/3.md), [ck\_array\_commit(3)](/ck_array_commit/3.md), [ck\_array\_put(3)](/ck_array_put/3.md), [ck\_array\_put\_unique(3)](/ck_array_put_unique/3.md), [ck\_array\_remove(3)](/ck_array_remove/3.md), [ck\_array\_deinit(3)](/ck_array_deinit/3.md) [ck\_array\_length(3)](/ck_array_length/3.md), [ck\_array\_buffer(3)](/ck_array_buffer/3.md), [ck\_array\_initialized(3)](/ck_array_initialized/3.md)

Additional information available at http://concurrencykit.org/
