<?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=Memset</id>
	<title>Memset - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Memset"/>
	<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Memset&amp;action=history"/>
	<updated>2026-05-09T11:28:36Z</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=Memset&amp;diff=42&amp;oldid=prev</id>
		<title>PhilKa: Die Seite wurde neu angelegt: „= memset (C-Funktion) =  Die Funktion &#039;&#039;&#039;memset()&#039;&#039;&#039; ist Teil der Standardbibliothek von C und dient dazu, einen bestimmten Speicherbereich mit einem festen Wert zu füllen. Sie wird häufig verwendet, um Arrays, Strukturen oder Speicherbereiche vor der weiteren Verwendung zu initialisieren oder zu löschen.  == Syntax == &lt;syntaxhighlight lang=&quot;c&quot;&gt; #include &lt;string.h&gt;  void* memset(void* ptr, int value, size_t num); &lt;/syntaxhighlight&gt;  == Parameter == * &#039;…“</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Memset&amp;diff=42&amp;oldid=prev"/>
		<updated>2025-10-17T14:11:14Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= memset (C-Funktion) =  Die Funktion &amp;#039;&amp;#039;&amp;#039;memset()&amp;#039;&amp;#039;&amp;#039; ist Teil der Standardbibliothek von C und dient dazu, einen bestimmten Speicherbereich mit einem festen Wert zu füllen. Sie wird häufig verwendet, um Arrays, Strukturen oder Speicherbereiche vor der weiteren Verwendung zu initialisieren oder zu löschen.  == Syntax == &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt; #include &amp;lt;string.h&amp;gt;  void* memset(void* ptr, int value, size_t num); &amp;lt;/syntaxhighlight&amp;gt;  == Parameter == * &amp;#039;…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= memset (C-Funktion) =&lt;br /&gt;
&lt;br /&gt;
Die Funktion &amp;#039;&amp;#039;&amp;#039;memset()&amp;#039;&amp;#039;&amp;#039; ist Teil der Standardbibliothek von C und dient dazu, einen bestimmten Speicherbereich mit einem festen Wert zu füllen. Sie wird häufig verwendet, um Arrays, Strukturen oder Speicherbereiche vor der weiteren Verwendung zu initialisieren oder zu löschen.&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;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void* memset(void* ptr, int value, size_t num);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ptr&amp;#039;&amp;#039;&amp;#039; – Zeiger auf den Beginn des Speicherbereichs, der verändert werden soll.  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; – Der Wert, mit dem der Speicher gefüllt wird. Nur die unteren 8 Bit (also ein einzelnes Byte) werden verwendet.  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;num&amp;#039;&amp;#039;&amp;#039; – Anzahl der Bytes, die im Speicher gesetzt werden sollen.&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;memset()&amp;#039;&amp;#039;&amp;#039; gibt den Zeiger &amp;#039;&amp;#039;&amp;#039;ptr&amp;#039;&amp;#039;&amp;#039; zurück.  &lt;br /&gt;
Dadurch kann die Funktion direkt in Ausdrücken verwendet oder verschachtelt werden.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;memset()&amp;#039;&amp;#039;&amp;#039; schreibt den angegebenen Wert (ein Byte) in jedes der ersten &amp;#039;&amp;#039;&amp;#039;num&amp;#039;&amp;#039;&amp;#039; Bytes des durch &amp;#039;&amp;#039;&amp;#039;ptr&amp;#039;&amp;#039;&amp;#039; angegebenen Speicherbereichs.&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 arr[5];&lt;br /&gt;
memset(arr, 0, sizeof(arr));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
→ Alle Bytes des Arrays werden auf &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; gesetzt.  &lt;br /&gt;
Dies entspricht einer Initialisierung mit Nullen.&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm ==&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;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    char text[20];&lt;br /&gt;
&lt;br /&gt;
    // Speicher mit &amp;#039;A&amp;#039; füllen&lt;br /&gt;
    memset(text, &amp;#039;A&amp;#039;, sizeof(text));&lt;br /&gt;
&lt;br /&gt;
    // String terminieren, um sicher zu drucken&lt;br /&gt;
    text[19] = &amp;#039;\0&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Text: %s\n&amp;quot;, text);&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;
Text: AAAAAAAAAAAAAAAAAAA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Typische Anwendungsfälle ==&lt;br /&gt;
* Initialisierung von Arrays oder Strukturen:&lt;br /&gt;
  &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  struct Data data;&lt;br /&gt;
  memset(&amp;amp;data, 0, sizeof(data));&lt;br /&gt;
  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Löschen sensibler Daten im Speicher (z. B. Passwörter)  &lt;br /&gt;
* Vorbereitung von Puffern vor einer Eingabeoperation  &lt;br /&gt;
&lt;br /&gt;
== Wichtige Hinweise ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;memset()&amp;#039;&amp;#039;&amp;#039; arbeitet byteweise — bei numerischen Arrays kann dies zu Missverständnissen führen:  &lt;br /&gt;
  &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  int arr[3];&lt;br /&gt;
  memset(arr, 1, sizeof(arr)); // setzt jedes Byte auf 0x01, NICHT jeden int auf 1!&lt;br /&gt;
  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Soll jedes Element eines Arrays auf einen bestimmten Wert gesetzt werden, ist eine Schleife oder die Funktion &amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;&amp;#039;std::fill()&amp;#039;&amp;#039;&amp;#039; in C++ oft sinnvoller.&lt;br /&gt;
* Falsche Verwendung kann zu Speicherfehlern führen, wenn &amp;#039;&amp;#039;&amp;#039;num&amp;#039;&amp;#039;&amp;#039; größer ist als der tatsächlich verfügbare Speicherbereich.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[memcpy (C-Funktion)]]&lt;br /&gt;
* [[memmove (C-Funktion)]]&lt;br /&gt;
* [[strcpy (C-Funktion)]]&lt;br /&gt;
* [[Standardbibliothek (C)]]&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;/div&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
</feed>