<?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[Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich schreibe gerade ein Programm und versuche verzeifelt einen Fehler zu beheben.<br />
Googlen hat nichts gebracht...<br />
Ich habe eine Klasse, die einen privaten Vektor hat. Die Klasse hat eine Funktion<br />
search, die auf diesen Vektor zugreift. Hierbei kommt es zu der Fehlermeldung:</p>
<pre><code class="language-cpp">HashTable(int Size)
		:HT_Size(Size){
			vector&lt;OPTR&gt; HTab(Size,OPTR());
			cout &lt;&lt; HTab[0];

	}

	OPTR search( Key_Type&amp; key) const {
		for(int i=0;i&lt;HT_Size;i++){
			if(key == HTab[i]-&gt;key) //hier tritt der Fehler auf
				return HTab[i];
		}
		return  NULL;
	}
//Auszug aus der main
  HashTable HTab(70);  

  OPTR OP;
  Key_Type test(3); 
  HTab.search(test); //Ob test jetzt den richtigen Typ hat weiß ich nicht
                     // in der richtigen main ist das aber anders gelöst und
                     // nicht das Problem
</code></pre>
<p>Ich kriege also den Fehler der im Titel steht, und Google sagt, dann wäre<br />
der Speicher des Vektors nicht allokiert. Allerdings habe ich schonmal im<br />
Konstruktor auf den Vektor zugegriffen, das hat funktioniert...</p>
<p>wäre super, wenn mir jemand helfen könnte!</p>
<p>lg bastian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280341/fehlermeldung-bei-vektorzugriff-fehler-sigsegv</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 04:04:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280341.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Jan 2011 20:27:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 20:27:56 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich schreibe gerade ein Programm und versuche verzeifelt einen Fehler zu beheben.<br />
Googlen hat nichts gebracht...<br />
Ich habe eine Klasse, die einen privaten Vektor hat. Die Klasse hat eine Funktion<br />
search, die auf diesen Vektor zugreift. Hierbei kommt es zu der Fehlermeldung:</p>
<pre><code class="language-cpp">HashTable(int Size)
		:HT_Size(Size){
			vector&lt;OPTR&gt; HTab(Size,OPTR());
			cout &lt;&lt; HTab[0];

	}

	OPTR search( Key_Type&amp; key) const {
		for(int i=0;i&lt;HT_Size;i++){
			if(key == HTab[i]-&gt;key) //hier tritt der Fehler auf
				return HTab[i];
		}
		return  NULL;
	}
//Auszug aus der main
  HashTable HTab(70);  

  OPTR OP;
  Key_Type test(3); 
  HTab.search(test); //Ob test jetzt den richtigen Typ hat weiß ich nicht
                     // in der richtigen main ist das aber anders gelöst und
                     // nicht das Problem
</code></pre>
<p>Ich kriege also den Fehler der im Titel steht, und Google sagt, dann wäre<br />
der Speicher des Vektors nicht allokiert. Allerdings habe ich schonmal im<br />
Konstruktor auf den Vektor zugegriffen, das hat funktioniert...</p>
<p>wäre super, wenn mir jemand helfen könnte!</p>
<p>lg bastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006318</guid><dc:creator><![CDATA[Bastian1989]]></dc:creator><pubDate>Thu, 13 Jan 2011 20:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 20:33:01 GMT]]></title><description><![CDATA[<p>Weisst du, was <code>vector&lt;OPTR&gt; HTab(Size,OPTR());</code> macht? Es initialisiert den ganzen Vektor mit OPTR().<br />
Ich weiss nicht was OPTR ist, aber falls es ein Pointer ist, besteht dein Vektor aus nachher lauter Nullpointern.</p>
<p>Wenn du diese dereferenzierst, tritt logischerweise ein Fehler auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006321</guid><dc:creator><![CDATA[Optrpus]]></dc:creator><pubDate>Thu, 13 Jan 2011 20:33:01 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 20:36:45 GMT]]></title><description><![CDATA[<p>Die Klasse ist nicht vollständig zu sehen.<br />
D.h. es gibt wohl ein Attribut Htab, aber im Konstruktor wird ein LOALES HTab-Objekt erzeugt! Das ist nach Aufruf des Konstruktors wieder futsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006323</guid><dc:creator><![CDATA[neeabersowas]]></dc:creator><pubDate>Thu, 13 Jan 2011 20:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 20:46:32 GMT]]></title><description><![CDATA[<p>Wie neeabersowas schon sagte, erzeugst du im Konstruktor-body einen lokalen Vektor. Dein member-Vektor wird dadurch aber nicht initialisiert, sondern es wird in deinem Fall der Standard-Konstruktor aufgerufen.</p>
<p>Nun versuchst du in search auf Elemente zuzugreifen, die garnicht vorhanden sind.</p>
<p>Änder mal die Initialisierungsliste des Konstruktors:</p>
<pre><code class="language-cpp">HashTable(int Size) : HT_Size(Size), HTab(Size,OPTR()) {
    cout &lt;&lt; HTab[0];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2006326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006326</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Thu, 13 Jan 2011 20:46:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 20:55:43 GMT]]></title><description><![CDATA[<p>Hey also,<br />
leider war eine Fehler in meinem ersten Posting.<br />
Im Konstruktor von HashTable steht</p>
<pre><code class="language-cpp">vector&lt;OPTR&gt; HTab(Size,OPTR(0));
</code></pre>
<p>und nicht</p>
<pre><code class="language-cpp">vector&lt;OPTR&gt; HTab(Size,OPTR());
</code></pre>
<p>hier der Beginn der Klassendefinition:</p>
<pre><code class="language-cpp">class HashTable{

	const int HT_Size;
	vector&lt;OPTR&gt; HTab;
</code></pre>
<p>Leider heißt die HashTable im Bsp. wie ihr Vector HTab. Hoffe das verwirrt nicht.<br />
Ich habe ein</p>
<pre><code class="language-cpp">typedef MyEntry *OPTR;
</code></pre>
<p>Hier der Code von MyEntry ( hat ein Objekt von MyKey, deshalb kopier ich das auch mal rein)</p>
<pre><code class="language-cpp">struct MyKey {
  int key;
  MyKey(int K) : key(K) {};
  int hash_val(int HT_Size) const {
    return key%HT_Size;
  }
  bool operator==(const MyKey&amp; K) {
    return key == K.key;
  }
friend ostream&amp; operator&lt;&lt;(ostream&amp; OUT, const MyKey&amp; K);
};

struct MyEntry {
  MyKey key;
  MyEntry *Next;
  MyEntry() : key(rand()%200), Next(0) {};
  MyEntry(int K) : key(K), Next(0) {};
  MyKey Key() const { return key; }
  bool operator==(const MyEntry&amp; ME) {
    return key == ME.key;
  }

};
</code></pre>
<p>Vllt könnt ihr jetzt beurteilen, ob eure Vermutungen zutreffen, ich kann es leider nicht. Allerdings habe ich ja im Konstruktor darauf zugreifen können, deshalb denke ich nicht, dass es alles Nullpointer sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006330</guid><dc:creator><![CDATA[Bastian1989]]></dc:creator><pubDate>Thu, 13 Jan 2011 20:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Vektorzugriff Fehler:SIGSEGV on Thu, 13 Jan 2011 21:02:26 GMT]]></title><description><![CDATA[<p>Habe es wie inter2k3 beschrieben hat geändert.<br />
leider tritt derselbe Fehler jetzt beim == Vergleich derselben Zeile auf.<br />
Die Klasse MyKey mit dem überladenen == hat aber mein Prof geschrieben, da<br />
wird der Fehler also wohl nicht liegen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2006335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2006335</guid><dc:creator><![CDATA[Bastian1989]]></dc:creator><pubDate>Thu, 13 Jan 2011 21:02:26 GMT</pubDate></item></channel></rss>