<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[wieso memset über struct]]></title><description><![CDATA[<p>Hi, ich habe gerade wieder einen etwas äteren Code ausgegraben, den ich früher einmal per copy &amp; paste &quot;geschrieben&quot; hatte. Nun bin ich aber dabei, das nachzuvollziehen was da direkt gemacht wird und eine Sache verstehe ich nicht. Ich habe das snippet zum präperieren des sockaddr_in structes:</p>
<pre><code class="language-cpp">struct sockaddr_in host_addr;
    memset( &amp;host_addr, 0, sizeof (host_addr));
    host_addr.sin_family = AF_INET;
    host_addr.sin_port = htons (port);
    host_addr.sin_addr.s_addr = inet_addr (server);
</code></pre>
<p>Ich frage mich nun, wozu das ganze struct mit nullen überschreibt. Ich dachte mir zuerst, um keine undefinierten Werte zu haben. Stimmt das? Und wird dabei nicht auch die Struktur von sockaddr_in zerstört?</p>
<p>Wäre für Aufklärung dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146344/wieso-memset-über-struct</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 15:32:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146344.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 May 2006 22:22:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wieso memset über struct on Sat, 06 May 2006 22:22:53 GMT]]></title><description><![CDATA[<p>Hi, ich habe gerade wieder einen etwas äteren Code ausgegraben, den ich früher einmal per copy &amp; paste &quot;geschrieben&quot; hatte. Nun bin ich aber dabei, das nachzuvollziehen was da direkt gemacht wird und eine Sache verstehe ich nicht. Ich habe das snippet zum präperieren des sockaddr_in structes:</p>
<pre><code class="language-cpp">struct sockaddr_in host_addr;
    memset( &amp;host_addr, 0, sizeof (host_addr));
    host_addr.sin_family = AF_INET;
    host_addr.sin_port = htons (port);
    host_addr.sin_addr.s_addr = inet_addr (server);
</code></pre>
<p>Ich frage mich nun, wozu das ganze struct mit nullen überschreibt. Ich dachte mir zuerst, um keine undefinierten Werte zu haben. Stimmt das? Und wird dabei nicht auch die Struktur von sockaddr_in zerstört?</p>
<p>Wäre für Aufklärung dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052325</guid><dc:creator><![CDATA[MaxDemian]]></dc:creator><pubDate>Sat, 06 May 2006 22:22:53 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sat, 06 May 2006 22:29:20 GMT]]></title><description><![CDATA[<p>MaxDemian schrieb:</p>
<blockquote>
<p>Ich frage mich nun, wozu das ganze struct mit nullen überschreibt. Ich dachte mir zuerst, um keine undefinierten Werte zu haben. Stimmt das? Und wird dabei nicht auch die Struktur von sockaddr_in zerstört?</p>
</blockquote>
<p>Wird mit 0 überschrieben, um nicht zufällig undefinierte Werte zu erhalten. Wieso sollte die Struktur dabei &quot;zerstört&quot; werden, wobei ich mir keine sinnvolle Bedeutung des Wortes &quot;Zerstört&quot; in dem Zusammenhang finden konnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":-D"
      alt="😃"
    /> . Naja, jedenfalls initialisiert du die Struktur doch erst danach mit Werten. Was soll davor also zerstört werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052327</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sat, 06 May 2006 22:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 03:14:32 GMT]]></title><description><![CDATA[<p>Hmm, ich glaube ich habe mir die Speicherung von Strukturen und Objekten falsch vorgestellt. Ich dachte, die eigentliche Struktur wird auch mit in dem alloziierten Speicher gespeichert, aber nach deiner Erklärung schätz ich mal, die liegt irgendwo anderst vor und der Compiler schaut dann, wenn er zum Beispiel die dritte Variable haben möchte, wieviel Platz seine Vorgänger brauchten und addiert den Platz zu dem Pointer auf die Struktur/Klasse.</p>
<p>Ist das so einigermaßen richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052374</guid><dc:creator><![CDATA[MaxDemian]]></dc:creator><pubDate>Sun, 07 May 2006 03:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 08:12:14 GMT]]></title><description><![CDATA[<p>MaxDemian schrieb:</p>
<blockquote>
<p>Hmm, ich glaube ich habe mir die Speicherung von Strukturen und Objekten falsch vorgestellt. Ich dachte, die eigentliche Struktur wird auch mit in dem alloziierten Speicher gespeichert, aber nach deiner Erklärung schätz ich mal, die liegt irgendwo anderst vor und der Compiler schaut dann, wenn er zum Beispiel die dritte Variable haben möchte, wieviel Platz seine Vorgänger brauchten und addiert den Platz zu dem Pointer auf die Struktur/Klasse.</p>
<p>Ist das so einigermaßen richtig?</p>
</blockquote>
<p>Ja. Der eigentlich Speicher, den über den Pointer bekommst, sind dann die Variablen, also wirklich die Inhalte.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052408</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sun, 07 May 2006 08:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 08:26:43 GMT]]></title><description><![CDATA[<p>Das memset ist in deinem Fall sinnlos. Du füllst ja sowieso danach die ganze Struktur mit sinnvollen Werten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052414</guid><dc:creator><![CDATA[...........]]></dc:creator><pubDate>Sun, 07 May 2006 08:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 08:41:12 GMT]]></title><description><![CDATA[<p>........... schrieb:</p>
<blockquote>
<p>Das memset ist in deinem Fall sinnlos. Du füllst ja sowieso danach die ganze Struktur mit sinnvollen Werten.</p>
</blockquote>
<p>Imho wird eben gerade nicht die ganze Struktur gefüllt. Also ist memset auch net sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052417</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sun, 07 May 2006 08:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 08:49:39 GMT]]></title><description><![CDATA[<p>Nun, wenn ich in C++ eine Struktur schreibe, dann hat das Biest bei mir auch einen Konstruktor welcher sich um &quot;alles&quot; kümmert.<br />
In C würde ich allerdings immer mit memset drübergehen - dann kann ich erst wirklich sicher sein.</p>
<p>Deine Struktur wird dadurch natürlich nicht zerstört, sondern der zugehörige Speicher wird eben komplett mit 0en zugeschrieben.<br />
Für den PC ist das immer nur roher Speicher - erst du interpretierst den Speicherinhalt einmal als std::string oder als int oder oder oder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052421</guid><dc:creator><![CDATA[hehejo]]></dc:creator><pubDate>Sun, 07 May 2006 08:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to wieso memset über struct on Sun, 07 May 2006 10:18:43 GMT]]></title><description><![CDATA[<p>bluecode schrieb:</p>
<blockquote>
<p>........... schrieb:</p>
<blockquote>
<p>Das memset ist in deinem Fall sinnlos. Du füllst ja sowieso danach die ganze Struktur mit sinnvollen Werten.</p>
</blockquote>
<p>Imho wird eben gerade nicht die ganze Struktur gefüllt. Also ist memset auch net sinnlos.</p>
</blockquote>
<p>Nur sin_zero hat er nicht gefüllt in seinem Code. Das muss man soweit ich weiß auch nicht. Das ist nur als Padding.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052492</guid><dc:creator><![CDATA[...........]]></dc:creator><pubDate>Sun, 07 May 2006 10:18:43 GMT</pubDate></item></channel></rss>