---
name: "curl_slist_free_all"
section: "3"
platform: "linux"
package: "curl"
version: "8.23.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curl_slist_free_all"
---

# curl\_slist\_free\_all(3)

free an entire curl\_slist list

## NAME

curl\_slist\_free\_all - free an entire curl\_slist list

## SYNOPSIS

```
#include <curl/curl.h>
void curl_slist_free_all(struct curl_slist *list);
```

## DESCRIPTION

curl\_slist\_free\_all() removes all traces of a previously built curl\_slist linked list.

Passing in a NULL pointer in *list* makes this function return immediately with no action.

Any use of the **list** after this function has been called and have returned, is illegal.

## PROTOCOLS

This functionality affects all supported protocols

## EXAMPLE

```
int main(void)
{
  CURL *handle = curl_easy_init();
  struct curl_slist *slist = NULL;
  slist = curl_slist_append(slist, "X-libcurl: coolness");
  if(!slist)
    return -1;
  curl_easy_setopt(handle, CURLOPT_HTTPHEADER, slist);
  curl_easy_perform(handle);
  curl_slist_free_all(slist); /* free the list again */
}
```

## AVAILABILITY

Added in curl 7.1

## RETURN VALUE

Nothing.

## SEE ALSO

[**curl\_slist\_append**(3)](/curl_slist_append/3.md)
