<?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[zugriff auf Klassenelement so nicht möglich?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine structure:</p>
<pre><code class="language-cpp">Class UFF
{
       int* a;
       int len;
       ...
};
</code></pre>
<p>Ich initialisiere meine klasse so:</p>
<pre><code class="language-cpp">void 
Class::New_UFF(UFF *is, 
			int		len)
{
	is-&gt;a = NULL;
	is-&gt;len = len;
	is-&gt;a = new int[len];
}
</code></pre>
<p>So, jetzt würde ich gerne aus einem anderen array die daten in das array des klassenobjektes a speichern:</p>
<pre><code class="language-cpp">int len = 2;
int*a = new int [len];
a[0] = 9;
a[1] = 8;

UFF* uff = NULL;

uff = New_UFF(len);

memcpy(uff-&gt;idcs, a, 2 * sizeof(int));
</code></pre>
<p>Aber hier gibts nen seg-fault und mein valgrind schreit mit:</p>
<pre><code>Invalid read of size 4
Address 0x0 is not stack'd, malloc'd or (recently) free'd
</code></pre>
<p>Kann mir jemand sagen warum? Könnte es sein dass uff-&gt;idcs kein Pointer ist? Oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192539/zugriff-auf-klassenelement-so-nicht-möglich</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 10:28:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192539.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Sep 2007 18:01:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zugriff auf Klassenelement so nicht möglich? on Sat, 15 Sep 2007 18:01:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine structure:</p>
<pre><code class="language-cpp">Class UFF
{
       int* a;
       int len;
       ...
};
</code></pre>
<p>Ich initialisiere meine klasse so:</p>
<pre><code class="language-cpp">void 
Class::New_UFF(UFF *is, 
			int		len)
{
	is-&gt;a = NULL;
	is-&gt;len = len;
	is-&gt;a = new int[len];
}
</code></pre>
<p>So, jetzt würde ich gerne aus einem anderen array die daten in das array des klassenobjektes a speichern:</p>
<pre><code class="language-cpp">int len = 2;
int*a = new int [len];
a[0] = 9;
a[1] = 8;

UFF* uff = NULL;

uff = New_UFF(len);

memcpy(uff-&gt;idcs, a, 2 * sizeof(int));
</code></pre>
<p>Aber hier gibts nen seg-fault und mein valgrind schreit mit:</p>
<pre><code>Invalid read of size 4
Address 0x0 is not stack'd, malloc'd or (recently) free'd
</code></pre>
<p>Kann mir jemand sagen warum? Könnte es sein dass uff-&gt;idcs kein Pointer ist? Oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366037</guid><dc:creator><![CDATA[membo]]></dc:creator><pubDate>Sat, 15 Sep 2007 18:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf Klassenelement so nicht möglich? on Sat, 15 Sep 2007 18:07:31 GMT]]></title><description><![CDATA[<p>Ach mist,</p>
<p>sorry, ich habe falsch die methoden gepostet, so sollte es sein:</p>
<pre><code class="language-cpp">void 
UFF::Init_UFF(	UFF *is, 
			int		len)
{
	is-&gt;a = NULL;
	is-&gt;len = len;
	is-&gt;a = new int[len];
}

UFF*
UFF::New_UFF(int length)
{
	UFF *is;
	is = new UFF::UFF();

	Init_UFF(is, length);

	return is;
}
</code></pre>
<p>und der Aufruf soll so sein - verursacht aber einen segfault:</p>
<pre><code class="language-cpp">int len = 2;
int*a = new int [len];
a[0] = 9;
a[1] = 8;

UFF* uff = NULL;

uff = New_UFF(len);

memcpy(uff-&gt;idcs, a, 2 * sizeof(int));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1366043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366043</guid><dc:creator><![CDATA[membo]]></dc:creator><pubDate>Sat, 15 Sep 2007 18:07:31 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf Klassenelement so nicht möglich? on Sat, 15 Sep 2007 18:09:02 GMT]]></title><description><![CDATA[<p>mist - ich registrier mich das nächste mal.</p>
<p>der aufruf von memcpy steht bei mir so:</p>
<pre><code class="language-cpp">memcpy(uff-&gt;a, a, 2 * sizeof(int));
</code></pre>
<p>so gehts aber nicht - immer segfault</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366045</guid><dc:creator><![CDATA[membo]]></dc:creator><pubDate>Sat, 15 Sep 2007 18:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to zugriff auf Klassenelement so nicht möglich? on Sat, 15 Sep 2007 18:51:55 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>sorry, aber mir scheint, dass Du bei dem ganzen noch ziemlich viel durcheinanderwirfst.<br />
Zum Initialisieren ist der Konstruktor einer Klasse da. Hier also:</p>
<pre><code class="language-cpp">class UFF {
   int* a;   
public:
   UFF(size_t l) : a(new int[l]), len(l) {} // Im Konstruktor (hier InitLeiste)
   ~UFF() { delete[] a; }
};

int main() {
   UFF uff(2);
   return 0;
}
</code></pre>
<p>In Deine Code legst Du nie ein UFF-Objekt an !!</p>
<p>Noch besser allerdings:</p>
<pre><code class="language-cpp">int main() {
   vector&lt;int&gt; uff(2);
   uff[0] = 9;
   uff[0] = 10;
   return 0;
}
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1366058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1366058</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 15 Sep 2007 18:51:55 GMT</pubDate></item></channel></rss>