---
name: "XmStringConcatAndFree"
section: "3"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XmStringConcatAndFree"
---

# XmStringConcatAndFree(3)

A compound string function that appends one string to another and frees the original strings

## NAME

**XmStringConcatAndFree** — A compound string function that appends one string to another and frees the original strings

## SYNOPSIS

```
#include <Xm/Xm.h>
XmString XmStringConcatAndFree(
XmString s1,
XmString s2);
```

## DESCRIPTION

**XmStringConcatAndFree** copies *s2* to the end of *s1* and returns a copy of the resulting compound string. The original strings are freed. The function will allocate space to hold the returned compound string. The application is responsible for managing the allocated space. The application can recover the allocated space by calling **XmStringFree**.

- *s1*

  Specifies the compound string to which a copy of *s2* is appended

- *s2*

  Specifies the compound string that is appended to the end of *s1*

The **XmStringConcatAndFree** function works like the **XmStringConcat** function, except that it frees the *s1* and *s2* strings, and is therefore more efficient. You should use **XmStringConcatAndFree** instead of **XmStringConcat** if you want *s1* and *s2* to be freed afterwards.

## RETURN

Returns a new compound string.

## RELATED

[**XmStringConcat**(3)](/XmStringConcat/3.md), [**XmStringCreate**(3)](/XmStringCreate/3.md), and [**XmStringFree**(3)](/XmStringFree/3.md).
