<?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[Access Violation Fehler, Invalid Pointer operation [gelöst]]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich bekomme folgende Fehlermeldung beim kompilieren:</p>
<p>Project faulted with Message_ 'acces violation at 0x00401492: write of address 0x00120014'. Process Stopped. Use Step or Run to continue. [OK]</p>
<p>Der Zeiger zeigt dabei auf folgende Stelle im Code:</p>
<pre><code class="language-cpp">char* Dateiname_neu = new char[80];
</code></pre>
<p>Kann mir jemand sagen, wo das Problem liegt bzw kennt jemand eine Lösung???</p>
<p>thx, MFG<br />
dope_dope</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/109362/access-violation-fehler-invalid-pointer-operation-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 13:52:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/109362.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 May 2005 11:34:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Fri, 20 May 2005 12:09:05 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich bekomme folgende Fehlermeldung beim kompilieren:</p>
<p>Project faulted with Message_ 'acces violation at 0x00401492: write of address 0x00120014'. Process Stopped. Use Step or Run to continue. [OK]</p>
<p>Der Zeiger zeigt dabei auf folgende Stelle im Code:</p>
<pre><code class="language-cpp">char* Dateiname_neu = new char[80];
</code></pre>
<p>Kann mir jemand sagen, wo das Problem liegt bzw kennt jemand eine Lösung???</p>
<p>thx, MFG<br />
dope_dope</p>
]]></description><link>https://www.c-plusplus.net/forum/post/784743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784743</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Fri, 20 May 2005 12:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Mon, 09 May 2005 11:55:52 GMT]]></title><description><![CDATA[<p>alle temp. dateien löschen (*.tds, *.csm, <em>.#</em>, <em>.obj) am besten auch die unter C:\Programme\Borland\CBuilder6\Lib\</em>.csm <em>.#</em>. dann nochmal probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/784777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784777</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Mon, 09 May 2005 11:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Mon, 09 May 2005 13:23:27 GMT]]></title><description><![CDATA[<p>Danke, aber habs grad selber gefunden. An einer anderen Stelle war ein Feld zu klein deklariert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/784780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784780</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Mon, 09 May 2005 13:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Mon, 09 May 2005 13:23:58 GMT]]></title><description><![CDATA[<p>Jetzt hab ich leider ein neues Problem:</p>
<p>Das Programm läuft bis kurz vors Ende (letztes getch klappt nicht mehr) und dann kommt folgender Fehler (Der Zeiger zeigt dabei ans Ende der Hauptfunktion - return 0; ):</p>
<p>Project raised exception class EInvalidPointer with message 'Invalid Pointer operation'. Process stpped. Use Step or Run to continue. [OK] [Help]</p>
<p>Hier mein Code (gekürzt):</p>
<pre><code class="language-cpp">//Hauptfunktion
int main(int argc, char* argv[])
{
	// Variablendeklaration
	FILE *f;                                                            // FILE structure wird angelegt
    char* datei = new char[64];                                         // Zeiger auf Datei
    AnsiString verzeichnis1=&quot;\\bla1&quot;;  // Verzeichnis 1
    AnsiString verzeichnis2=&quot;\\bla2&quot;;      // Verzeichnis 2
    AnsiString verzeichnis3=&quot;\\bla3&quot;;                  // Verzeichnis 3
    AnsiString verzeichnis;                                             // aktuell gewähltes Verzeichnis
    int i_verzeichnisse=0;                                              // Zähler für die Verzeichnisse (3 Stück)

    for (i_verzeichnisse=0; i_verzeichnisse&lt;=2; i_verzeichnisse++)  // Für alle drei Verzeichnisse
    {
        // Je nach Stand des Verzeichniszählers das entsprechende Verzeichnis auswählen
        if (i_verzeichnisse==0)         // Verzeichnis 1
        {
            verzeichnis=verzeichnis1;
        }
        else if (i_verzeichnisse==1)    // Verzeichnis 2
        {
            verzeichnis=verzeichnis2;
        }
        else if (i_verzeichnisse==2)    // Verzeichnis 3
        {
            verzeichnis=verzeichnis3;
        }

        // Verzeichnis anpassen + Variablendeklaration
        sprintf(datei, &quot;%s%s&quot;, verzeichnis, &quot;\\Datei.txt&quot;);         // Dateinamen + Pfad ins Feld schreiben
        AnsiString Dateiname = datei;                               // Dateiname + Pfad als AnsiString, für umbenennen und dateidatum auslesen
    	char zeile[1000];                                           // Array in dem die Zeile gespeichert wird

        // +++ Datei öffnen +++
        if ((f = fopen(datei, &quot;r&quot;))==NULL)  // Wenn DATEI NICHT VORHANDEN
        {
            // Fehler
            cout &lt;&lt; &quot;Fehler: Datei nicht gefunden!\n&quot;;
        }
        else    // Wenn DATEI VORHANDEN
        {
            fclose(f);
            delete datei;

            // +++ Dateidatum auslesen +++
            char datei_aenderungsdatum[10];                                 // Speicherplatz für das ermittelte Dateiänderungsdatum
            char datei_aenderungsdatum_sqlformat[10];                       // Speicherplatz für das ermittelte Dateiänderungsdatum
            Dateidatum_auslesen_anpassen(Dateiname, datei_aenderungsdatum, datei_aenderungsdatum_sqlformat); // Funktion zum Auslesen und anpassen des Dateiänderungsdatums

            // Datei umbenennen
            if (i_verzeichnisse!=2) // Wenn Datei geprueft und verschoben wurde
            {
                // Variablendeklaration
                char* Dateiname_neu = new char[64];
                sprintf(Dateiname_neu, &quot;%s%s %s.%s&quot;, verzeichnis, &quot;\\Datei&quot;, datei_aenderungsdatum_sqlformat, &quot;txt&quot;);
                AnsiString Dateiname_neuStr = Dateiname_neu;

                if (RenameFile(Dateiname,Dateiname_neuStr))
                {
                    cout &lt;&lt; &quot; Datei wurde umbenannt in &quot; &lt;&lt; Dateiname_neu &lt;&lt; &quot;!\n\n&quot;;
                }
                else
                {
                    textcolor(LIGHTRED); //Farbe
                    cprintf(&quot;%s&quot;, &quot; Fehler: Datei konnte nicht umbenannt werden!&quot;);
                }
                delete Dateiname_neu;   // Speicher freigeben
            }
            else if (i_verzeichnisse==2) // Wenn Datei nicht geprueft wurde (umbenennen + verschieben!)
            {
                char* Dateiname_neu = new char[64];
                sprintf(Dateiname_neu, &quot;%s%s %s.%s&quot;, verzeichnis, &quot;\\nicht_geprueft\\Datei&quot;, datei_aenderungsdatum_sqlformat, &quot;txt&quot;);
                AnsiString Dateiname_neuStr = Dateiname_neu;

                if (RenameFile(Dateiname,Dateiname_neuStr))
                {
                    cout &lt;&lt; &quot; Datei wurde umbenannt und verschoben nach &quot; &lt;&lt; Dateiname_neu &lt;&lt; &quot;!\n\n&quot;;
                }
                else
                {
                    textcolor(LIGHTRED); //Farbe
                    cprintf(&quot;%s&quot;, &quot; Fehler: Datei konnte nicht umbenannt werden!\n&quot;);
                }
                delete Dateiname_neu;   // Speicher freigeben
            } // end else
        }   // end else
    }   // end for

    getch();
    return 0;
}	//Ende der Hauptfunktion
</code></pre>
<p>Entdeckt ihr Fehler???<br />
thx, MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/784899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/784899</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Mon, 09 May 2005 13:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Mon, 09 May 2005 15:20:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Zu den Fehlern<br />
1. das delete für datei und Dateiname_neu muß so aussehen</p>
<pre><code class="language-cpp">delete[] datei;
</code></pre>
<p>etc.<br />
2. Du machst ein delete von datei in der Schleife, d.h. du machst das 3-mal ohne vorher neuen Speicher anzufordern</p>
<p>1. Bemerkung:<br />
Warum verwendest du überhaupt char-Felder. Dein ganzer Code läßt sich problemlos ausschließlich mit AnsiString (oder std::string) realisieren. Dann hast du auch keine Probleme mit dem Speicher mehr.<br />
2. Bemerkung<br />
Warum verwendest du fopen und Konsorten. In C++ verwendet man für sowas eher Streams.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785055</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 09 May 2005 15:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Tue, 10 May 2005 13:41:16 GMT]]></title><description><![CDATA[<p>Habe jetzt die deletes und die Stellen, an denen sie ausgeführt werden <strong>geändert</strong>.</p>
<p>Code:</p>
<pre><code class="language-cpp">//Hauptfunktion
int main(int argc, char* argv[])
{
	// Variablendeklaration
	FILE *f;                                                            // FILE structure wird angelegt
    char* datei = new char[64];                                         // Zeiger auf Datei
    AnsiString verzeichnis1=&quot;\\bla1&quot;;  // Verzeichnis 1
    AnsiString verzeichnis2=&quot;\\bla2&quot;;      // Verzeichnis 2
    AnsiString verzeichnis3=&quot;\\bla3&quot;;                  // Verzeichnis 3
    AnsiString verzeichnis;                                             // aktuell gewähltes Verzeichnis
    int i_verzeichnisse=0;                                              // Zähler für die Verzeichnisse (3 Stück)

    for (i_verzeichnisse=0; i_verzeichnisse&lt;=2; i_verzeichnisse++)  // Für alle drei Verzeichnisse
    {
        // Je nach Stand des Verzeichniszählers das entsprechende Verzeichnis auswählen
        if (i_verzeichnisse==0)         // Verzeichnis 1
        {
            verzeichnis=verzeichnis1;
        }
        else if (i_verzeichnisse==1)    // Verzeichnis 2
        {
            verzeichnis=verzeichnis2;
        }
        else if (i_verzeichnisse==2)    // Verzeichnis 3
        {
            verzeichnis=verzeichnis3;
        }

        // Verzeichnis anpassen + Variablendeklaration
        sprintf(datei, &quot;%s%s&quot;, verzeichnis, &quot;\\DATEI.txt&quot;);         // Dateinamen + Pfad ins Feld schreiben
        AnsiString Dateiname = datei;                               // Dateiname + Pfad als AnsiString, für umbenennen und dateidatum auslesen
    	char zeile[1000];                                           // Array in dem die Zeile gespeichert wird

        // +++ Datei öffnen +++
        if ((f = fopen(datei, &quot;r&quot;))==NULL)  // Wenn DATEI NICHT VORHANDEN
        {
            // Fehler
            cout &lt;&lt; &quot;Fehler: Datei nicht gefunden!\n&quot;;
        }
        else    // Wenn DATEI VORHANDEN
        {

            // +++ Dateidatum auslesen +++
            char datei_aenderungsdatum[10];                                 // Speicherplatz für das ermittelte Dateiänderungsdatum
            char datei_aenderungsdatum_sqlformat[10];                       // Speicherplatz für das ermittelte Dateiänderungsdatum
            Dateidatum_auslesen_anpassen(Dateiname, datei_aenderungsdatum, datei_aenderungsdatum_sqlformat); // Funktion zum Auslesen und anpassen des Dateiänderungsdatums

            // Datei umbenennen
            if (i_verzeichnisse!=2) // Wenn Datei geprueft und verschoben wurde
            {
                // Variablendeklaration
                char* Dateiname_neu = new char[64];
                sprintf(Dateiname_neu, &quot;%s%s %s.%s&quot;, verzeichnis, &quot;\\DATEI&quot;, datei_aenderungsdatum_sqlformat, &quot;txt&quot;);
                AnsiString Dateiname_neuStr = Dateiname_neu;

                if (RenameFile(Dateiname,Dateiname_neuStr))
                {
                    cout &lt;&lt; &quot; Datei wurde umbenannt in &quot; &lt;&lt; Dateiname_neu &lt;&lt; &quot;!\n\n&quot;;
                }
                else
                {
                    textcolor(LIGHTRED); //Farbe
                    cprintf(&quot;%s&quot;, &quot; Fehler: Datei konnte nicht umbenannt werden!&quot;);
                }
                delete[] Dateiname_neu;   // Speicher freigeben
            }
            else if (i_verzeichnisse==2) // Wenn Datei nicht geprueft wurde (umbenennen + verschieben!)
            {
                char* Dateiname_neu = new char[64];
                sprintf(Dateiname_neu, &quot;%s%s %s.%s&quot;, verzeichnis, &quot;\\nicht_geprueft\\DATEI&quot;, datei_aenderungsdatum_sqlformat, &quot;txt&quot;);
                AnsiString Dateiname_neuStr = Dateiname_neu;

                if (RenameFile(Dateiname,Dateiname_neuStr))
                {
                    cout &lt;&lt; &quot; Datei wurde umbenannt und verschoben nach &quot; &lt;&lt; Dateiname_neu &lt;&lt; &quot;!\n\n&quot;;
                }
                else
                {
                    textcolor(LIGHTRED); //Farbe
                    cprintf(&quot;%s&quot;, &quot; Fehler: Datei konnte nicht umbenannt werden!\n&quot;);
                }
                delete[] Dateiname_neu;   // Speicher freigeben
            } // end else

        fclose(f);  // Datei schließen
        }   // end else
    delete[] datei;   // Speicher freigeben        
    }   // end for

    getch();
    return 0;
}	//Ende der Hauptfunktion
</code></pre>
<p>Leider funktioniert es immer noch nicht. <strong>Fehler</strong>:<br />
Project raised exception class EAccessViolation with message 'Access violation at address 011941E4. Write of address 38685C5C'. Process stpped. Use Step or Run to continue. [OK] [Help]</p>
<p>Der Zeiger zeigt jetzt auf die Zeile:<br />
char* Dateiname_neu = new char[64];</p>
<p>Wenn ich mir den Wert von</p>
<pre><code>i_verzeichnisse
</code></pre>
<p>ansehe, beträgt dieser 1, also tritt der Fehler erst beim zweiten Durchlauf der Schleife</p>
<pre><code class="language-cpp">if (i_verzeichnisse!=2) // Wenn Datei geprueft und verschoben wurde
            {
                // Variablendeklaration
                char* Dateiname_neu = new char[64];
</code></pre>
<p>auf. Könnte es eventuell sein, dass der selbe Speicher zweimal reserviert wird, oder sowas in der Art? Obwohl es je eigentlich mit</p>
<pre><code>delete[] Dateiname_neu;   // Speicher freigeben
</code></pre>
<p>wieder gelöscht werden sollte, oder?</p>
<p><strong>Zu den Bemerkungen:</strong><br />
AnsiString benutze ich nicht, da es sich auf der Konsole nicht ausgeben lässt. Zumindest nicht mit cout &lt;&lt;...<br />
Und std::string klappt mit den Funktionen nicht.<br />
Müsste ich bei der Verwendung von Strings nicht auch die Funktionen wie z.B. sprintf() verändern?</p>
<p>Kann mir vielleicht jemand ein Beispiel geben, wie ich es besser als mit char arrays machen kann?</p>
<p>Fopen müsste doch eigentlich trotzdem funktionieren, auch wenn es vielleicht nicht so chic ist, oder?</p>
<p>Danke für die Hilfe, MFG<br />
dope_dope</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785727</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Tue, 10 May 2005 13:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Tue, 10 May 2005 13:59:25 GMT]]></title><description><![CDATA[<p>Zuerst zu deinen Kommentaren zu meinen Bemerkungen<br />
1.<br />
für cout mit AnsiString<br />
dann mußt du das ein wenig anders machen</p>
<pre><code class="language-cpp">AnsiString test(&quot;test&quot;);
cout &lt;&lt; test.c_str();
</code></pre>
<p>siehe auch <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39296" rel="nofollow">FAQ</a> bzw. die Hilfe zu den Memberfunktionen von AnsiString.<br />
Bei std::string ist das ähnlich. Auch die besitzen überladene Operatoren für + und += sowie die Funktion c_str().</p>
<p>2. sprintf gibt es auch bei Ansistring (als Memberfunktion). Du kannst es aber auch einfach mit + bzw. += machen.<br />
Bsp.</p>
<pre><code class="language-cpp">// deine Version
sprintf(datei, &quot;%s%s&quot;, verzeichnis, &quot;\\DATEI.txt&quot;);

// wenn datei AnsiString ist
datei = verzeichnis;
datei += &quot;\\Datei.txt&quot;;
</code></pre>
<p>Zum Fehler<br />
Könnte am delete[] von datei liegen. Verschiebe das mal eine Klammer nach unten. Du machst das delete ja in der for-Schleife (ohne neues new).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785751</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 10 May 2005 13:59:25 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Tue, 10 May 2005 14:17:17 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Zuerst zu deinen Kommentaren zu meinen Bemerkungen<br />
1.<br />
für cout mit AnsiString<br />
dann mußt du das ein wenig anders machen</p>
<pre><code class="language-cpp">AnsiString test(&quot;test&quot;);
cout &lt;&lt; test.c_str();
</code></pre>
<p>siehe auch <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39296" rel="nofollow">FAQ</a> bzw. die Hilfe zu den Memberfunktionen von AnsiString.<br />
Bei std::string ist das ähnlich. Auch die besitzen überladene Operatoren für + und += sowie die Funktion c_str().</p>
</blockquote>
<p>Man kann auch direkt AnsiString verwenden, wenn man das aus der BCB-Hilfe beachtet :</p>
<blockquote>
<p>Wenn Sie #include &lt;iostream&gt; oder #define VCL_IOSTREAM angeben, bevor Sie die include-Anweisung für die Datei dstring.h (die normalerweise indirekt durch die Datei vcl.h einbezogen wird) festlegen, können Sie die Streaming-Operatoren (&lt;&lt; und &gt;&gt;) mit AnsiStrings als Argument verwenden:</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt; (ostream&amp; os, const AnsiString&amp; arg);
  istream&amp; operator &gt;&gt; (istream&amp; is, AnsiString&amp; arg);
</code></pre>
</blockquote>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/785783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/785783</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 10 May 2005 14:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Fri, 13 May 2005 23:46:31 GMT]]></title><description><![CDATA[<p>[cpp]// Variablendeklaration<br />
char****** Dateiname_neu = new char[64];[/cpp]</p>
<p>Der Rückgabetyp des Ausdrucks</p>
<pre><code class="language-cpp">new char[64];
</code></pre>
<p>ist nämlich ein <strong>Pointer auf ein Feld von char</strong>.</p>
<p>Vielleicht liegt's daran.</p>
<p>Oli</p>
<p>[Edit]<br />
P.S. Leider habe ich Unrecht. Der Rückgabetyp ist ein <strong>char</strong>*. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
[/Edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/786821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/786821</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Fri, 13 May 2005 23:46:31 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 12 May 2005 07:02:56 GMT]]></title><description><![CDATA[<p>Hallo Oli,</p>
<p>Lies dir bitte deinen eigenen Post nochmal durch. Deine Aussage ist falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/787087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/787087</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 12 May 2005 07:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 12 May 2005 19:34:51 GMT]]></title><description><![CDATA[<p>der oli schrieb:</p>
<blockquote>
<p>[cpp]// Variablendeklaration<br />
char****** Dateiname_neu = new char[64];[/cpp]<br />
.<br />
.<br />
Oli</p>
</blockquote>
<p>Hallo Oli, hier nicht, Das hier ist kein Zeiger auf Zeiger!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/787505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/787505</guid><dc:creator><![CDATA[DerAltenburger]]></dc:creator><pubDate>Thu, 12 May 2005 19:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Fri, 13 May 2005 08:10:55 GMT]]></title><description><![CDATA[<p>Das sagte ich bereits (zumindest so ähnlich <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/787696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/787696</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 13 May 2005 08:10:55 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Fri, 13 May 2005 23:43:46 GMT]]></title><description><![CDATA[<p>bin dabei, mich selbst aufzuklären.</p>
<p>oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/788224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/788224</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Fri, 13 May 2005 23:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 13:32:55 GMT]]></title><description><![CDATA[<p>hab jetzt folgendes verändert:</p>
<p>Alt:</p>
<pre><code class="language-cpp">char* datei = new char[64];               
   sprintf(datei, &quot;%s%s&quot;, verzeichnis, &quot;\\Datei.txt&quot;);
</code></pre>
<p>Neu:</p>
<pre><code class="language-cpp">AnsiString datei;
   datei = verzeichnis;
   datei += &quot;\\Datei.txt&quot;;
</code></pre>
<p>Problem:</p>
<pre><code class="language-cpp">if ((f = fopen(datei, &quot;r&quot;))==NULL)
</code></pre>
<p>fopen braucht anscheinend nen char-array.</p>
<p>Wie würdet ihr das machen??? Das char-array lassen und wieder Angst vor Speicherfehlern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> oder kann man das wieder umwandeln und was war das mit diesen Streams? Leider is die Suchfunktion ja im Moment eher unbrauchbar..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/791472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791472</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Thu, 19 May 2005 13:32:55 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 13:37:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>1. siehe <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39296" rel="nofollow">FAQ</a><br />
2. Was für Probleme hast du mit den Streams?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/791475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791475</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 19 May 2005 13:37:02 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 13:57:03 GMT]]></title><description><![CDATA[<p>Das FAQ-Beispiel hat geholfen, allerdings hab ich seitdem die Speicherfehler weg sind das Problem, dass das Umbenennen der Datei nicht mehr funktioniert. Habt ihr dazu eine Idee???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/791501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791501</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Thu, 19 May 2005 13:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 14:04:41 GMT]]></title><description><![CDATA[<p>Was genau funktioniert denn nicht.<br />
Da wir deinen neuen Code nicht kennen und meine Kristallkugel auch in der Reperatur ist, weiß ich erstmal nicht weiter. <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/791513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791513</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 19 May 2005 14:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 14:23:50 GMT]]></title><description><![CDATA[<p>Hab den Code weiter oben schonmal gepostet... aber hier nochmal einen Ausschnitt:</p>
<p>Die Datei ist auf jeden Fall vorhanden, das wid mit:</p>
<pre><code class="language-cpp">if ((f = fopen(datei, &quot;r&quot;))==NULL)  // Wenn DATEI NICHT VORHANDEN
        {
            // Fehler
            cout &lt;&lt; &quot;Fehler: In Verzeichnis &quot; &lt;&lt; i_verzeichnisse+1 &lt;&lt; &quot; wurde die gesuchte Datei nicht gefunden!\n\n&quot;;
        }
        else    // Wenn DATEI VORHANDEN
        {
// Code...
</code></pre>
<p>geprüft.</p>
<p>Umbenannt wird hier (Forsetzung von else):</p>
<pre><code class="language-cpp">if (RenameFile(DateiPfad_Name,Dateiname_neuStr))
                {
                    cout &lt;&lt; &quot; Datei wurde umbenannt und verschoben nach &quot; &lt;&lt; Dateiname_neuStr.c_str() &lt;&lt; &quot;!\n\n&quot;;
                }
                else
                {
                    textcolor(LIGHTRED); //Farbe
                    cprintf(&quot;%s%d%s&quot;, &quot;Fehler: Datei in Verzeichnis &quot;, i_verzeichnisse+1, &quot; konnte nicht umbenannt werden!\n&quot;);
                }
</code></pre>
<p>Variablen:</p>
<pre><code class="language-cpp">AnsiString DateiPfad_Name;  // Alter Dateipfad + Name
                AnsiString Dateiname_neuStr; // Neuer Dateipfad + Name
</code></pre>
<p>Es wird auch keine Fehlermeldung vom Compiler ausgegeben, das Programm läuft und zeigt dann den else-case (Konnte nicht umbenannt werden) an. Aber warum???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/791533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791533</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Thu, 19 May 2005 14:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 14:23:25 GMT]]></title><description><![CDATA[<p>Schau doch mal nach ob eine Datei mit dem neuen Namen bereits existiert. Vielleicht ist deine Datei aber auch noch offen.<br />
Desweiteren schau mal in die Hilfe zu FileExists.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/791536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791536</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 19 May 2005 14:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to Access Violation Fehler, Invalid Pointer operation [gelöst] on Thu, 19 May 2005 14:28:16 GMT]]></title><description><![CDATA[<p>Hey, das ist die Lösung, wie soll er sie auch umbenennen, wenn sie noch offen ist... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
<p>Big fat thx <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/791544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/791544</guid><dc:creator><![CDATA[dope_dope]]></dc:creator><pubDate>Thu, 19 May 2005 14:28:16 GMT</pubDate></item></channel></rss>