---
name: "Alloc"
section: "3tcl"
platform: "linux"
package: "tcl8.3-doc"
version: "8.3.5-13"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/Alloc/3tcl"
---

# Alloc(3tcl)

allocate or free heap memory

```

```

## NAME

Tcl\_Alloc, Tcl\_Free, Tcl\_Realloc - allocate or free heap memory

## SYNOPSIS

```
#include <tcl.h>

char *
Tcl_Alloc(size)

Tcl_Free(ptr)

char *
Tcl_Realloc(ptr, size)
```

## ARGUMENTS

- int *size* (in)

  Size in bytes of the memory block to allocate.

- char *\*ptr* (in)

  Pointer to memory block to free or realloc.

  ```

  ```

## DESCRIPTION

These procedures provide a platform and compiler independent interface for memory allocation.  Programs that need to transfer ownership of memory blocks between Tcl and other modules should use these routines rather than the native **malloc()** and **free()** routines provided by the C run-time library.

**Tcl\_Alloc** returns a pointer to a block of at least *size* bytes suitably aligned for any use.

**Tcl\_Free** makes the space referred to by *ptr* available for further allocation.

**Tcl\_Realloc** changes the size of the block pointed to by *ptr* to *size* bytes and returns a pointer to the new block. The contents will be unchanged up to the lesser of the new and old sizes.  The returned location may be different from *ptr*.

## KEYWORDS

alloc, allocation, free, malloc, memory, realloc
