<?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[Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?!]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Konsolenanwendung schreiben, die Messwerte in ein array einliest, mit dem man dann später weiterarbeiten kann. soweit ja nicht schwer, das programm funktioniert soweit auch einwandfrei, solange die array länge den wert 4 (also 4 messwerte werden abgespeichert) nicht überschreitet. ab länge 5+ bekomme bricht das programm bei der ausgabe der messwerte (2.for-schleife) ab und gibt die unten angezeigte fehlermeldung aus.</p>
<p>desweiteren sagt es mir, dass windows einen haltepunkt ausgelöst hat, und irgendwas mit heap-verletzung. was ist falsch und wie kann ich das problem beseitigen??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

double *createArray(int length){
	double* arr = new double(length);
	return arr;
}

int main(){
	cout&lt;&lt;&quot;Array-Laenge: &quot;&lt;&lt; endl;
	int length;
	cin &gt;&gt; length;

	double* arr = createArray(length);

	cout&lt;&lt;&quot;Bitte geben Sie Ihre Messwerte ein!&quot;&lt;&lt; endl;
	int i;
	for (i=0; i&lt;length; i++){
		cin &gt;&gt; arr[i];
	}
	cout&lt;&lt;&quot;Danke&quot;&lt;&lt; endl;
	cout&lt;&lt;&quot; &quot;&lt;&lt; endl;
	cout&lt;&lt;&quot;Ihre Messwerte lauten: &quot;&lt;&lt; endl;
	for (i=0; i&lt;length; i++) {
		cout&lt;&lt;&quot;[Index:] &quot;&lt;&lt;i&lt;&lt;&quot; --&quot;&lt;&lt;arr[i]&lt;&lt; endl;
	}

	system(&quot;Pause&quot;);
}
</code></pre>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x7c812afb in test.exe: Microsoft C++-Ausnahme: std::bad_alloc an Speicherposition 0x0012fc84..</p>
</blockquote>
<p>Vielen Dank für eure Aufmerksamkeit !</p>
<p>Lg max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268287/werte-in-array-einlesen-gt-heap-fehler-zugriffsverweigerung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 22:06:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268287.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Jun 2010 07:38:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 07:38:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Konsolenanwendung schreiben, die Messwerte in ein array einliest, mit dem man dann später weiterarbeiten kann. soweit ja nicht schwer, das programm funktioniert soweit auch einwandfrei, solange die array länge den wert 4 (also 4 messwerte werden abgespeichert) nicht überschreitet. ab länge 5+ bekomme bricht das programm bei der ausgabe der messwerte (2.for-schleife) ab und gibt die unten angezeigte fehlermeldung aus.</p>
<p>desweiteren sagt es mir, dass windows einen haltepunkt ausgelöst hat, und irgendwas mit heap-verletzung. was ist falsch und wie kann ich das problem beseitigen??</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

double *createArray(int length){
	double* arr = new double(length);
	return arr;
}

int main(){
	cout&lt;&lt;&quot;Array-Laenge: &quot;&lt;&lt; endl;
	int length;
	cin &gt;&gt; length;

	double* arr = createArray(length);

	cout&lt;&lt;&quot;Bitte geben Sie Ihre Messwerte ein!&quot;&lt;&lt; endl;
	int i;
	for (i=0; i&lt;length; i++){
		cin &gt;&gt; arr[i];
	}
	cout&lt;&lt;&quot;Danke&quot;&lt;&lt; endl;
	cout&lt;&lt;&quot; &quot;&lt;&lt; endl;
	cout&lt;&lt;&quot;Ihre Messwerte lauten: &quot;&lt;&lt; endl;
	for (i=0; i&lt;length; i++) {
		cout&lt;&lt;&quot;[Index:] &quot;&lt;&lt;i&lt;&lt;&quot; --&quot;&lt;&lt;arr[i]&lt;&lt; endl;
	}

	system(&quot;Pause&quot;);
}
</code></pre>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x7c812afb in test.exe: Microsoft C++-Ausnahme: std::bad_alloc an Speicherposition 0x0012fc84..</p>
</blockquote>
<p>Vielen Dank für eure Aufmerksamkeit !</p>
<p>Lg max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908134</guid><dc:creator><![CDATA[MAX2.0]]></dc:creator><pubDate>Mon, 07 Jun 2010 07:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 07:43:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">double* arr = new double(length);
</code></pre>
<p>Das hier erzeugt kein Array sondern <strong>einen</strong> double mit Wert length.</p>
<p>Bevor ich mir den Rest des Programms angucke: Nimm std::vector. Genau dafür ist der da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908138</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Jun 2010 07:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 08:07:29 GMT]]></title><description><![CDATA[<p>Zudem auch noch mit <a href="http://www.cppreference.com/wiki/keywords/new" rel="nofollow">new/new[]</a> angeforderten Speicher wieder mit <a href="http://www.cppreference.com/wiki/keywords/delete" rel="nofollow">delete/delete[]</a> freigeben!</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
using namespace std; 

int main() { 
  cout &lt;&lt; &quot;Array-Laenge: &quot; &lt;&lt; endl; 

  int length; 
  cin &gt;&gt; length; 

  double* arr = new double[length]; // mit new[] angeforderten Speicher ...

  cout &lt;&lt; &quot;Bitte geben Sie Ihre Messwerte ein!&quot; &lt;&lt; endl; 
  for (int i = 0; i &lt; length; i++)  // dafür gibt es zwar ein etwas elegantere lösung aber erstmal solltest Du die Grundlagen beherrschen ;)
    cin &gt;&gt; arr[i]; 

  cout &lt;&lt; &quot;Danke, Ihre Messwerte lauten: &quot; &lt;&lt; endl;
  for (int i = 0; i &lt; length; i++)
    cout &lt;&lt; &quot;[Index:] &quot; &lt;&lt; i &lt;&lt; &quot; --&quot; &lt;&lt; arr[i] &lt;&lt; endl;

  delete[] arr; // ... auch mit delete[] wieder freigeben!
  cin.get();  // system(&quot;pause&quot;); pfui ...

  return 0; // wer schon &quot;int main&quot; schreibt muss auch etwas zurückgeben ...
}
</code></pre>
<p>Aber wie SeppJ schon schrieb, kannst Du auch einen <a href="http://www.cppreference.com/wiki/stl/vector/start" rel="nofollow">std::vector&lt; T &gt;</a> nehmen. Damit ersparst Du Dir ggf. die Abfrage nach der Anzahl der Messwerte und, kannst unabhängig wieviel man eingibt, Messwerte einlesen/ausgeben.</p>
<p>Gut Schuß<br />
VuuRWerK <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908150</guid><dc:creator><![CDATA[VuuRWerK]]></dc:creator><pubDate>Mon, 07 Jun 2010 08:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 08:17:03 GMT]]></title><description><![CDATA[<p>VuuRWerK schrieb:</p>
<blockquote>
<p><code>// wer schon &quot;int main&quot; schreibt muss auch etwas zurückgeben ...</code></p>
</blockquote>
<p>Nein, muss er nicht. Und er soll auch nichts anderes als &quot;int main&quot; schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908162</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Jun 2010 08:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 08:17:12 GMT]]></title><description><![CDATA[<p>Ach ich schlaumeier hab ja wirklich new double() statt new double[] eingeben. funktioniert jetzt alles einwandfrei, vielen Dank !!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908164</guid><dc:creator><![CDATA[MAX2.0]]></dc:creator><pubDate>Mon, 07 Jun 2010 08:17:12 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 08:19:52 GMT]]></title><description><![CDATA[<p>Schau dir für die Zukunft trotzdem mal die <a href="http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container" rel="nofollow">STL-Container</a> an. Die nehmen dir enorm viel Arbeit ab und beseitigen etliche Fehlerquellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908165</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 07 Jun 2010 08:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to Werte in array einlesen -&amp;gt; Heap-Fehler, Zugriffsverweigerung ?! on Mon, 07 Jun 2010 19:45:21 GMT]]></title><description><![CDATA[<p>werde ich machen, danke für den tipp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908565</guid><dc:creator><![CDATA[MAX2.0]]></dc:creator><pubDate>Mon, 07 Jun 2010 19:45:21 GMT</pubDate></item></channel></rss>