<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Malloc</id>
	<title>Malloc - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Malloc"/>
	<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Malloc&amp;action=history"/>
	<updated>2026-08-25T02:34:21Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in dev.kaibel.net</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Malloc&amp;diff=50&amp;oldid=prev</id>
		<title>PhilKa: /* Parameter */</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Malloc&amp;diff=50&amp;oldid=prev"/>
		<updated>2025-10-21T11:46:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Parameter&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Oktober 2025, 13:46 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Zeile 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Parameter ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Parameter ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;size&amp;#039;&amp;#039;&amp;#039; – Anzahl der &amp;#039;&amp;#039;&amp;#039;Bytes&amp;#039;&amp;#039;&amp;#039;, die reserviert werden sollen.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;size&amp;#039;&amp;#039;&amp;#039; – Anzahl der &amp;#039;&amp;#039;&amp;#039;Bytes&amp;#039;&amp;#039;&amp;#039;, die reserviert werden sollen.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;Der Datentyp &amp;lt;code&amp;gt;size_t&amp;lt;/code&amp;gt; ist ein ganzzahliger Typ, der für Speichergrößen verwendet wird.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** &lt;/ins&gt;Der Datentyp &amp;lt;code&amp;gt;size_t&amp;lt;/code&amp;gt; ist ein ganzzahliger Typ, der für Speichergrößen verwendet wird.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Rückgabewert ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Rückgabewert ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Malloc&amp;diff=49&amp;oldid=prev</id>
		<title>PhilKa: /* malloc (C-Funktion) */</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Malloc&amp;diff=49&amp;oldid=prev"/>
		<updated>2025-10-21T11:45:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;malloc (C-Funktion)&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 21. Oktober 2025, 13:45 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= malloc (C-Funktion) =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= malloc (C-Funktion) =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktion &#039;&#039;&#039;malloc()&#039;&#039;&#039; (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&lt;/del&gt;memory allocation&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&lt;/del&gt;) gehört zur Standardbibliothek der Programmiersprache C und dient der &#039;&#039;&#039;dynamischen Speicherreservierung&#039;&#039;&#039; während der Programmlaufzeit.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktion &#039;&#039;&#039;malloc()&#039;&#039;&#039; (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;memory allocation&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;) gehört zur Standardbibliothek der Programmiersprache C und dient der &#039;&#039;&#039;dynamischen Speicherreservierung&#039;&#039;&#039; während der Programmlaufzeit.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sie wird in der Header-Datei &amp;lt;code&amp;gt;&amp;amp;lt;stdlib.h&amp;amp;gt;&amp;lt;/code&amp;gt; deklariert.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sie wird in der Header-Datei &amp;lt;code&amp;gt;&amp;amp;lt;stdlib.h&amp;amp;gt;&amp;lt;/code&amp;gt; deklariert.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Malloc&amp;diff=48&amp;oldid=prev</id>
		<title>PhilKa: Die Seite wurde neu angelegt: „= malloc (C-Funktion) =  Die Funktion &#039;&#039;&#039;malloc()&#039;&#039;&#039; (*memory allocation*) gehört zur Standardbibliothek der Programmiersprache C und dient der &#039;&#039;&#039;dynamischen Speicherreservierung&#039;&#039;&#039; während der Programmlaufzeit.   Sie wird in der Header-Datei &lt;code&gt;&amp;lt;stdlib.h&amp;gt;&lt;/code&gt; deklariert.  == Zweck == Im Gegensatz zu statischen Variablen (die beim Kompilieren eine feste Größe haben) ermöglicht &#039;&#039;&#039;malloc()&#039;&#039;&#039;, Speicher dynamisch zur Laufzeit aus dem &#039;&#039;&#039;He…“</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Malloc&amp;diff=48&amp;oldid=prev"/>
		<updated>2025-10-21T11:45:05Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= malloc (C-Funktion) =  Die Funktion &amp;#039;&amp;#039;&amp;#039;malloc()&amp;#039;&amp;#039;&amp;#039; (*memory allocation*) gehört zur Standardbibliothek der Programmiersprache C und dient der &amp;#039;&amp;#039;&amp;#039;dynamischen Speicherreservierung&amp;#039;&amp;#039;&amp;#039; während der Programmlaufzeit.   Sie wird in der Header-Datei &amp;lt;code&amp;gt;&amp;lt;stdlib.h&amp;gt;&amp;lt;/code&amp;gt; deklariert.  == Zweck == Im Gegensatz zu statischen Variablen (die beim Kompilieren eine feste Größe haben) ermöglicht &amp;#039;&amp;#039;&amp;#039;malloc()&amp;#039;&amp;#039;&amp;#039;, Speicher dynamisch zur Laufzeit aus dem &amp;#039;&amp;#039;&amp;#039;He…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= malloc (C-Funktion) =&lt;br /&gt;
&lt;br /&gt;
Die Funktion &amp;#039;&amp;#039;&amp;#039;malloc()&amp;#039;&amp;#039;&amp;#039; (*memory allocation*) gehört zur Standardbibliothek der Programmiersprache C und dient der &amp;#039;&amp;#039;&amp;#039;dynamischen Speicherreservierung&amp;#039;&amp;#039;&amp;#039; während der Programmlaufzeit.  &lt;br /&gt;
Sie wird in der Header-Datei &amp;lt;code&amp;gt;&amp;amp;lt;stdlib.h&amp;amp;gt;&amp;lt;/code&amp;gt; deklariert.&lt;br /&gt;
&lt;br /&gt;
== Zweck ==&lt;br /&gt;
Im Gegensatz zu statischen Variablen (die beim Kompilieren eine feste Größe haben) ermöglicht &amp;#039;&amp;#039;&amp;#039;malloc()&amp;#039;&amp;#039;&amp;#039;, Speicher dynamisch zur Laufzeit aus dem &amp;#039;&amp;#039;&amp;#039;Heap&amp;#039;&amp;#039;&amp;#039; anzufordern.  &lt;br /&gt;
Dies ist besonders nützlich, wenn die benötigte Speichergröße erst während der Programmausführung bekannt ist – etwa bei Benutzereingaben, dynamischen Arrays oder verketteten Listen.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void* malloc(size_t size);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;size&amp;#039;&amp;#039;&amp;#039; – Anzahl der &amp;#039;&amp;#039;&amp;#039;Bytes&amp;#039;&amp;#039;&amp;#039;, die reserviert werden sollen.  &lt;br /&gt;
  Der Datentyp &amp;lt;code&amp;gt;size_t&amp;lt;/code&amp;gt; ist ein ganzzahliger Typ, der für Speichergrößen verwendet wird.&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
* Gibt einen &amp;#039;&amp;#039;&amp;#039;Zeiger (void*)&amp;#039;&amp;#039;&amp;#039; auf den Anfang des reservierten Speicherbereichs zurück, falls die Zuweisung erfolgreich war.  &lt;br /&gt;
* Gibt &amp;#039;&amp;#039;&amp;#039;NULL&amp;#039;&amp;#039;&amp;#039; zurück, wenn der Speicher nicht zugewiesen werden konnte (z. B. bei Speichermangel).&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Einfacher Speicherblock ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int* ptr;&lt;br /&gt;
&lt;br /&gt;
    // Speicher für 10 int-Werte reservieren&lt;br /&gt;
    ptr = (int*) malloc(10 * sizeof(int));&lt;br /&gt;
&lt;br /&gt;
    if (ptr == NULL) {&lt;br /&gt;
        printf(&amp;quot;Fehler: Speicher konnte nicht zugewiesen werden.\n&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Speicher verwenden&lt;br /&gt;
    for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
        ptr[i] = i * 2;&lt;br /&gt;
        printf(&amp;quot;ptr[%d] = %d\n&amp;quot;, i, ptr[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Speicher wieder freigeben&lt;br /&gt;
    free(ptr);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ausgabe:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ptr[0] = 0&lt;br /&gt;
ptr[1] = 2&lt;br /&gt;
ptr[2] = 4&lt;br /&gt;
...&lt;br /&gt;
ptr[9] = 18&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Verwendungshinweise ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Typumwandlung (Cast) ===&lt;br /&gt;
In C ist ein expliziter Typ-Cast beim Rückgabewert von &amp;lt;code&amp;gt;malloc()&amp;lt;/code&amp;gt; **nicht erforderlich** (und teils unerwünscht):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// Empfohlen:&lt;br /&gt;
int* ptr = malloc(10 * sizeof(int));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Cast ist nur in C++ nötig:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int* ptr = (int*) malloc(10 * sizeof(int)); // in C++ erforderlich&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 2. Speicherfreigabe mit free() ===&lt;br /&gt;
Der mit &amp;lt;code&amp;gt;malloc()&amp;lt;/code&amp;gt; angeforderte Speicher muss mit &amp;lt;code&amp;gt;free()&amp;lt;/code&amp;gt; wieder freigegeben werden, um &amp;#039;&amp;#039;&amp;#039;Speicherlecks&amp;#039;&amp;#039;&amp;#039; zu vermeiden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
free(ptr);&lt;br /&gt;
ptr = NULL; // optional, um Dangling Pointer zu vermeiden&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 3. Initialisierung des Speichers ===&lt;br /&gt;
Der von &amp;lt;code&amp;gt;malloc()&amp;lt;/code&amp;gt; bereitgestellte Speicher ist **nicht initialisiert** – der Inhalt ist undefiniert.  &lt;br /&gt;
Wenn du den Speicher automatisch mit Nullen füllen möchtest, verwende stattdessen:&lt;br /&gt;
* &amp;lt;code&amp;gt;calloc()&amp;lt;/code&amp;gt; – für nullinitialisierten Speicher  &lt;br /&gt;
* &amp;lt;code&amp;gt;memset()&amp;lt;/code&amp;gt; – zum nachträglichen Setzen von Werten  &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int* ptr = calloc(10, sizeof(int)); // automatisch mit 0 belegt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 4. Fehlerbehandlung ===&lt;br /&gt;
Wenn &amp;lt;code&amp;gt;malloc()&amp;lt;/code&amp;gt; keinen Speicher mehr findet, liefert es &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt;.  &lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int* p = malloc(1000000000000);&lt;br /&gt;
if (p == NULL) {&lt;br /&gt;
    fprintf(stderr, &amp;quot;Speicherzuweisung fehlgeschlagen!\n&amp;quot;);&lt;br /&gt;
    exit(EXIT_FAILURE);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== 5. Reallokation mit realloc() ===&lt;br /&gt;
Wenn du später mehr (oder weniger) Speicher benötigst, kannst du den vorhandenen Bereich mit &amp;lt;code&amp;gt;realloc()&amp;lt;/code&amp;gt; anpassen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int* p = malloc(5 * sizeof(int));&lt;br /&gt;
p = realloc(p, 10 * sizeof(int));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Dynamisches Array ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int n;&lt;br /&gt;
    printf(&amp;quot;Wie viele Zahlen? &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;, &amp;amp;n);&lt;br /&gt;
&lt;br /&gt;
    int* arr = malloc(n * sizeof(int));&lt;br /&gt;
    if (arr == NULL) {&lt;br /&gt;
        printf(&amp;quot;Fehler bei Speicherzuweisung\n&amp;quot;);&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; n; i++) {&lt;br /&gt;
        arr[i] = i + 1;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Eingegebene Zahlen:\n&amp;quot;);&lt;br /&gt;
    for (int i = 0; i &amp;lt; n; i++) {&lt;br /&gt;
        printf(&amp;quot;%d &amp;quot;, arr[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    free(arr);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Typische Fehlerquellen ==&lt;br /&gt;
* Vergessen von &amp;lt;code&amp;gt;free()&amp;lt;/code&amp;gt; → &amp;#039;&amp;#039;&amp;#039;Speicherleck&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
* Zugriff außerhalb des reservierten Bereichs → &amp;#039;&amp;#039;&amp;#039;undefiniertes Verhalten&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
* Verwendung nach &amp;lt;code&amp;gt;free()&amp;lt;/code&amp;gt; → &amp;#039;&amp;#039;&amp;#039;Dangling Pointer&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
* Keine Prüfung auf &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt; nach &amp;lt;code&amp;gt;malloc()&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Verwandte Funktionen ==&lt;br /&gt;
* [[calloc (C-Funktion)]] – wie malloc(), aber initialisiert mit Nullen  &lt;br /&gt;
* [[realloc (C-Funktion)]] – verändert die Größe eines reservierten Bereichs  &lt;br /&gt;
* [[free (C-Funktion)]] – gibt Speicher wieder frei  &lt;br /&gt;
* [[memset (C-Funktion)]] – schreibt Werte in Speicherbereiche  &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Heap (Speicherverwaltung)]]&lt;br /&gt;
* [[Zeiger (C)]]&lt;br /&gt;
* [[Dynamische Speicherverwaltung]]&lt;br /&gt;
* [[calloc (C-Funktion)]]&lt;br /&gt;
* [[realloc (C-Funktion)]]&lt;br /&gt;
* [[free (C-Funktion)]]&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* ISO/IEC 9899:2018 (C18) – Programming Language C  &lt;br /&gt;
* Kernighan, Brian W.; Ritchie, Dennis M.: &amp;#039;&amp;#039;The C Programming Language&amp;#039;&amp;#039;. Prentice Hall, 1988.  &lt;br /&gt;
* GNU C Library Documentation  &lt;br /&gt;
* man 3 malloc&lt;/div&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
</feed>