<?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[Array von Pointern]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verwende eine Klasse QFile. Diese Klasse kann wie folgt verwendet werden:</p>
<pre><code>QFile* singleFile;
singleFile = new QFile;

singleFile-&gt;setFileName(&quot;singleFile.txt&quot;);
singleFile-&gt;open(QIODevice::WriteOnly);
//...
</code></pre>
<p>Dies Funktioniert soweit auch. Für mein aktuelles Projekt brauche muss ich mehrere Dateien gleichzeitig öffnen. Dazu möchte ich ein Array dieser QFiles verwenden. Ich hatte mir das so vorgestellt:</p>
<pre><code>QFile **file;
file=new QFile*[10];
      for (int c=0; c&lt;10; c++)
            file[c]=new QFile();

//ID ist eine Zahl zwischen 0 und 9
file[ID]-&gt;setFileName(filename); //***hier bleibt das Programm hängen
file[ID]-&gt;open(QIODevice::WriteOnly);
</code></pre>
<p>Diese version läßt sich kompilieren ohne Fehler und Warnungen. Zur Laufzeit bleibt das Programm an der im Code gekennzeichneten Stelle hängen.</p>
<p>Meine Frage: Ist die Deklaration von file** richtig? Ist file[ID]-&gt;someFunction() ein richtiger Aufruf?</p>
<p>Hat jemand eine Idee, warum das Programm sich aufhängt?</p>
<p>Gruss, Karl</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/120119/array-von-pointern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 07:33:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/120119.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Sep 2005 08:15:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Pointern on Fri, 09 Sep 2005 08:15:58 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verwende eine Klasse QFile. Diese Klasse kann wie folgt verwendet werden:</p>
<pre><code>QFile* singleFile;
singleFile = new QFile;

singleFile-&gt;setFileName(&quot;singleFile.txt&quot;);
singleFile-&gt;open(QIODevice::WriteOnly);
//...
</code></pre>
<p>Dies Funktioniert soweit auch. Für mein aktuelles Projekt brauche muss ich mehrere Dateien gleichzeitig öffnen. Dazu möchte ich ein Array dieser QFiles verwenden. Ich hatte mir das so vorgestellt:</p>
<pre><code>QFile **file;
file=new QFile*[10];
      for (int c=0; c&lt;10; c++)
            file[c]=new QFile();

//ID ist eine Zahl zwischen 0 und 9
file[ID]-&gt;setFileName(filename); //***hier bleibt das Programm hängen
file[ID]-&gt;open(QIODevice::WriteOnly);
</code></pre>
<p>Diese version läßt sich kompilieren ohne Fehler und Warnungen. Zur Laufzeit bleibt das Programm an der im Code gekennzeichneten Stelle hängen.</p>
<p>Meine Frage: Ist die Deklaration von file** richtig? Ist file[ID]-&gt;someFunction() ein richtiger Aufruf?</p>
<p>Hat jemand eine Idee, warum das Programm sich aufhängt?</p>
<p>Gruss, Karl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868426</guid><dc:creator><![CDATA[KarlBlau]]></dc:creator><pubDate>Fri, 09 Sep 2005 08:15:58 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Fri, 09 Sep 2005 12:02:44 GMT]]></title><description><![CDATA[<p>KarlBlau schrieb:</p>
<blockquote>
<p>Meine Frage: Ist die Deklaration von file** richtig?</p>
</blockquote>
<p>ja</p>
<p>KarlBlau schrieb:</p>
<blockquote>
<p>Ist file[ID]-&gt;someFunction() ein richtiger Aufruf?</p>
</blockquote>
<p>ja</p>
<p>KarlBlau schrieb:</p>
<blockquote>
<p>Hat jemand eine Idee, warum das Programm sich aufhängt?</p>
</blockquote>
<p>zeig mal mehr Code</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868585</guid><dc:creator><![CDATA[ssm]]></dc:creator><pubDate>Fri, 09 Sep 2005 12:02:44 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Fri, 09 Sep 2005 12:29:18 GMT]]></title><description><![CDATA[<p>Definiere &quot;Aufhängen&quot; <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="😉"
    /> Absturz? Wenn ja, Fehlermeldung(en)? Oder &quot;reagiert nicht mehr&quot;?</p>
<p>Was ist fileName an der &quot;Aufhängstelle&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/868609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/868609</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Fri, 09 Sep 2005 12:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 11:20:02 GMT]]></title><description><![CDATA[<p>Hi, ich habe ein paar Dinge verändert. Jetzt bekomme ich eine Fehlermeldung, die weiterhelfen könnte.</p>
<pre><code>QString filename;
filename = &quot;test.txt&quot;;
ID=1;

file[ID]-&gt;setFileName(filename);
std::cout &lt;&lt; &quot;filename: &quot; &lt;&lt; (file[ID]-&gt;fileName()).toStdString() &lt;&lt; std::endl;
file[ID]-&gt;open(QIODevice::WriteOnly | QIODevice::Text);
</code></pre>
<p>Ausgabe ist dann:<br />
filename: test.txt<br />
QFSFileEngine::open: No file name specified<br />
Das Programm läuft weiter, aber macht natürlich nicht das, was es soll.</p>
<p>Das ist doch merkwürdig, denn eine Zeile vor open() bekomme ich noch den richtigen Dateinamen ausgegeben.</p>
<p>Ich verwende QT4 für Windows.</p>
<p>Gruss, Karl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869115</guid><dc:creator><![CDATA[Karl Blau]]></dc:creator><pubDate>Sat, 10 Sep 2005 11:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 18:25:16 GMT]]></title><description><![CDATA[<p>versuch mal so was:</p>
<pre><code class="language-cpp">int main()
{
	//initialization
	QFile **file = new QFile*[10];
	for (int c = 0; c &lt; 10; c++) 
	{
		file[c] = new QFile();	
	}

	//load files
	for(int i = 0; i &lt; 10; ++i)
	{
		if(QFile::exists(filename))
		{
			file[i]-&gt;setFileName(filename);
			file[i]-&gt;open(IO_WriteOnly);			
		}
		else
		{
			std::cout &lt;&lt; &quot;file not exist!!!\n&quot;;
		}
	}

	//cleanup
	for(int i = 0; i &lt; 10; ++i)
	{
		delete file[i];
	}
	delete [] file;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/869344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869344</guid><dc:creator><![CDATA[ssm]]></dc:creator><pubDate>Sat, 10 Sep 2005 18:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 19:15:48 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Hilfe.<br />
Jetzt läuft das Ding.</p>
<p>Gruss, Karl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869367</guid><dc:creator><![CDATA[Karl Blau]]></dc:creator><pubDate>Sat, 10 Sep 2005 19:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 22:44:22 GMT]]></title><description><![CDATA[<p>wenn ich das schon sehe:</p>
<blockquote>
<p>QFile **file = new QFile*[10];</p>
</blockquote>
<p>wie zu C Zeiten...<br />
wie wäre es mit std::vector&lt;QFile*&gt; ?<br />
oder noch besser:</p>
<pre><code class="language-cpp">std::vector&lt;std::auto_ptr&lt;QFile*&gt; &gt;
</code></pre>
<p>Vorteile:<br />
- Keine probs mit Zeigern,<br />
- Keine dtor Aufrufe nötig<br />
- Keine Speicherlags</p>
<p>ps: ich weis jetzt nicht mehr ob es std::auto_ptr&lt;&gt; war, programmier schon seit einer Weile mit C#.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869438</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Sat, 10 Sep 2005 22:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 22:55:13 GMT]]></title><description><![CDATA[<p>DEvent du meinst boost::shared_ptr anstatt std::auto_ptr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/869446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869446</guid><dc:creator><![CDATA[boost vs. std]]></dc:creator><pubDate>Sat, 10 Sep 2005 22:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sat, 10 Sep 2005 23:38:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">QFile* singleFile;
singleFile = new QFile;
</code></pre>
<p>geht hier nicht...</p>
<pre><code class="language-cpp">QFile singleFile;
</code></pre>
<p>?</p>
<p>dann wird der vector sogar noch ein bischen einfacher:</p>
<pre><code class="language-cpp">std::vector&lt;QFile&gt; file;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/869454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869454</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sat, 10 Sep 2005 23:38:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Pointern on Sun, 11 Sep 2005 11:53:38 GMT]]></title><description><![CDATA[<p>DEvent schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::vector&lt;std::auto_ptr&lt;QFile*&gt; &gt;
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /><br />
All STL containers have copy semantic not reference semantic, means when you insert anything in any STL container then its copy is created and put in the container and the same thing apply when you get something from container. For further information about copy semantic, take a look at Item 3 of Effective STL. But unfortunately the auto_ptr semantic doesn't fulfill the copy requirement of STL container, therefore it is not recommended to use it in container. If you try to do it then you may get unpredictable result, such as some or all of your value of container becomes NULL due to ownership transfer semantic, because we don't know in advance what is the internal working of a particular algorithm.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/869578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/869578</guid><dc:creator><![CDATA[ssm]]></dc:creator><pubDate>Sun, 11 Sep 2005 11:53:38 GMT</pubDate></item></channel></rss>