<?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[Frage zu struct]]></title><description><![CDATA[<p>In folgendem struct befindet sich in einem Programm unter prefix manchmal inhalt manchmal nicht. Ich wollte abrfagen, ob prefix leer ist oder ob da etwas steht. Ausprobiert habe ich bisher</p>
<pre><code>if (qrpCubes[Laststop].antecedent.clptr-&gt;cLiterals-&gt;meta.lit != 0) {
</code></pre>
<p>und</p>
<pre><code>if (!qrpCubes[Laststop].antecedent.empty) {
</code></pre>
<p>Beies funktioniert nicht. Wie kann ich richtig abfragen ob prefix leer ist oder nicht?<br />
Was steht unter prefix wenn es leer ist? Eine null steht da ja nicht, sonst würde meine erste Abfrage ja funktionieren. Stehen da dann Zufallswerte oder existiert einfach keine Speicheradresse? Wie kann ich mir das vorstellen?</p>
<pre><code>struct wdata
{
    Reason conflicting;
    Literal reslit;
    Reason prefix;

    wdata(): conflicting(nullptr), reslit(0), prefix() {}

    wdata(const Reason&amp; conflcl, const Literal&amp; lit, const Reason&amp; reason):
        conflicting(conflcl), reslit(lit), prefix(reason) {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/339932/frage-zu-struct</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 15:20:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339932.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Oct 2016 22:51:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu struct on Sat, 08 Oct 2016 22:51:51 GMT]]></title><description><![CDATA[<p>In folgendem struct befindet sich in einem Programm unter prefix manchmal inhalt manchmal nicht. Ich wollte abrfagen, ob prefix leer ist oder ob da etwas steht. Ausprobiert habe ich bisher</p>
<pre><code>if (qrpCubes[Laststop].antecedent.clptr-&gt;cLiterals-&gt;meta.lit != 0) {
</code></pre>
<p>und</p>
<pre><code>if (!qrpCubes[Laststop].antecedent.empty) {
</code></pre>
<p>Beies funktioniert nicht. Wie kann ich richtig abfragen ob prefix leer ist oder nicht?<br />
Was steht unter prefix wenn es leer ist? Eine null steht da ja nicht, sonst würde meine erste Abfrage ja funktionieren. Stehen da dann Zufallswerte oder existiert einfach keine Speicheradresse? Wie kann ich mir das vorstellen?</p>
<pre><code>struct wdata
{
    Reason conflicting;
    Literal reslit;
    Reason prefix;

    wdata(): conflicting(nullptr), reslit(0), prefix() {}

    wdata(const Reason&amp; conflcl, const Literal&amp; lit, const Reason&amp; reason):
        conflicting(conflcl), reslit(lit), prefix(reason) {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2511004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511004</guid><dc:creator><![CDATA[DerLernende]]></dc:creator><pubDate>Sat, 08 Oct 2016 22:51:51 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu struct on Sun, 09 Oct 2016 00:16:10 GMT]]></title><description><![CDATA[<p>Diese Fragen kann dir nur derjenige beantworten, der die Klassen die du dort verwendest implementiert hat.<br />
Du solltest daher die Dokumenation zu dieser Bibliothek bemühen (welche immer das auch sein mag).</p>
<p>Finnegan</p>
<p>P.S.: Viel zuwenig Information (&quot;funktioniert nicht&quot; ist keine Fehlerbeschreibung!) und viel zu spezielle Fragen zu irgendeiner Bibliothek<br />
zu der du noch nicht mal dazu schreibst welche es ist. Auch haben deine Fragen nichts direkt mit C++ zu tun. Solche Fragen sind in einem<br />
Forum, welches auf die von dir verwendete Bibliothek spezialisiert ist, besser aufgehoben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511010</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Sun, 09 Oct 2016 00:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu struct on Sun, 09 Oct 2016 11:33:27 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>Diese Fragen kann dir nur derjenige beantworten, der die Klassen die du dort verwendest implementiert hat.<br />
Du solltest daher die Dokumenation zu dieser Bibliothek bemühen (welche immer das auch sein mag).</p>
<p>Finnegan</p>
<p>P.S.: Viel zuwenig Information (&quot;funktioniert nicht&quot; ist keine Fehlerbeschreibung!) und viel zu spezielle Fragen zu irgendeiner Bibliothek<br />
zu der du noch nicht mal dazu schreibst welche es ist. Auch haben deine Fragen nichts direkt mit C++ zu tun. Solche Fragen sind in einem<br />
Forum, welches auf die von dir verwendete Bibliothek spezialisiert ist, besser aufgehoben.</p>
</blockquote>
<p>Danke dir,<br />
Das Programm bezieht sich nicht auf eine Bibliothek, sondern ein sehr umfangreiches Programm von jemand anderem. Die entsprechende Klasse ist folgendermaßen definiert:</p>
<pre><code>union Reason {

  // Constructors
  Reason( Literal l ): varIdx( static_cast&lt;unsigned long&gt;(l.idx()&lt;&lt;1) | 0x1 ) {}
  Reason( Clause* clause ): clptr(clause) {}
  Reason( unsigned long varid ): fake( varid ) {}
  Reason( void ): clptr(nullptr) {}
</code></pre>
<p>Nachdem was ich über nullptr gelesen habe, müsste folgende Anfrage funktionieren:</p>
<pre><code>if (qrpCubes[Laststop].prefix.clptr != nullptr) {
</code></pre>
<p>Mit g++ kompiliert das Programm zwar, bei der Ausführung bricht es aber genau an jener Stelle ab. Ich nehme also an, dass irgendetwas nicht definiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511026</guid><dc:creator><![CDATA[DerLernende]]></dc:creator><pubDate>Sun, 09 Oct 2016 11:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu struct on Sun, 09 Oct 2016 12:10:15 GMT]]></title><description><![CDATA[<p>DerLernende schrieb:</p>
<blockquote>
<p>Nachdem was ich über nullptr gelesen habe, müsste folgende Anfrage funktionieren:</p>
<pre><code>if (qrpCubes[Laststop].prefix.clptr != nullptr) {
</code></pre>
<p>Mit g++ kompiliert das Programm zwar, bei der Ausführung bricht es aber genau an jener Stelle ab. Ich nehme also an, dass irgendetwas nicht definiert ist.</p>
</blockquote>
<p>Ja, nachdem ich jetzt zumindest mal ein paar Konstruktoren von <code>Reason</code> gesehen habe (besser ganze Klasse posten), und weiss,<br />
dass es sich um ein <code>union</code> handelt, würde mir mein Bauchgefühl auch sagen dass man so auf &quot;leer&quot; testen kann, wenn <code>Reason</code> nicht<br />
ohnehin eine <code>is_empty()</code> -Methode oder ähnliches anbietet (trotzdem nur eine Vermutung!).</p>
<p>Wenn das Programm an dieser Stelle abbricht, solltest du versuchen mit einem Debugger herauszufinden warum das so ist.<br />
Leider weiss ich nicht was <code>qrpCubes</code> ist, da dein geposteter Code immer noch sehr dürftig ist, ich würde jedoch darauf tippen,<br />
dass das Programm abbricht, weil <code>qrpCubes</code> kein Element an Index <code>Laststop</code> hat.</p>
<p>Führ das mal im Debugger aus (Google ist dein Freund wenn du sowas noch nicht gemacht hast). Setze einen Breakpoint an der<br />
fragwürdigen Zeile und schau dir mal an was da genau passiert (welchen Wert hat <code>Laststop</code> ? gibt es überhaupt ein <code>qrpCubes[Laststop]</code> ?<br />
Ist <code>prefix.clptr == nullptr</code> überhaupt das was du unter &quot;leer&quot; verstehst und was du testen möchtest? Hast du vielleicht in Wirklichkeit ein ganz anderes Problem?)</p>
<p>Viel mehr kann ich dir da leider auch nicht helfen. Fremden, undokumentierten Code zu verstehen lernt man durch Erfahrung - wenn du allerdings noch nachlesen musst,<br />
was <code>nullptr</code> bedeutet (!), dann hast du da noch einiges vor dir. Vielleicht solltest du erstmal daran arbeiten etwas fließender C++ zu sprechen und zu verstehen (?).</p>
<p>Gruss,<br />
Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511028</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Sun, 09 Oct 2016 12:10:15 GMT</pubDate></item></channel></rss>