Array Problem



  • Hi,
    habe ein Programm das in der Cmd-Zeile ohne Probleme läuft nun bin ich dabei das mit einer WinGui zuversehen. Das Problem ist ich brauche zwei Arrays aber er sagt mir immer eine Warnung beim Kompilieren und beim ausführen stürtzt das Programm an der Stelle ab wo die Arrays erzeugt werden.
    Die Fehlerausgabe: warning C4101: 'array_1': Unreferenzierte lokale Variable
    Beim zweiten Array ist die gleiche Warnung.
    Die Arrays:

    short		array_1 [10000000];
    	unsigned char	array_2 [10000000];
    

    Verstehe das nicht in der Cmd - Zeile tretten keine Probleme auf. Hab dann noch mal die gleichen Includes rein gemacht immer noch der Fehler. Wieso?
    MfG Christan



  • Die Warnung besagt nur, dass die Variable im weiteren Verlauf der Funktion nicht benutzt wird.

    Das Problem besteht darin, dass diese Arrays zu groß sind, um sie auf dem Stack ( also als lokale Variablen) anzulegen, denn der ist üblicherweise nur 1 MByte groß. Du musst den Speicher dynamisch anfordern, z.B. mit new oder der Klasse std::vector. Das sollte aber unabhängig davon sein, ob es ein Kosolen- oder ein Windowsprogramm ist. Möglicherweise ist bei der Portierung noch etwas schiefgegangen.



  • Jab das wars.
    Habe es jetzt gelöst:

    short *array_16_bit=0;
    	unsigned char *array_8_bit=0;
    	array_16_bit = new short [10000000];
    	array_8_bit = new unsigned char [10000000];
    

    Weis net ob das so das Beste ist aber so dachte ich es mir erstmal. Glaube du hast recht das da noch was schief gegangen ist aber weis noch nicht genau wo.
    In der Cmd-Zeile ist das so das die Main eine zweite Datei nutzt in der bestimmte Methoden drin stehen.
    Diese Methoden Datei habe ich übernommen. Die Gui habe ich mit dem MFC Client von VS8 erstellt. Dann habe ich mir ein Button und zwei Edit Controlls gemacht. Das eine für die Eingabe das andere für die Ausgabe. Das funktioniert soweit. Dann habe ich mir noch eine Klasse geschrieben welche die Main aus der Cmd-Zeile ersetzten soll und die entsprechenden Ausgaben an die Gui weiter gibt. Das geht. Alles was ich in dieser Main-ersatz Datei mache funktioniert.
    Doch wenn ich jetzt von der MainErsatz auf die MethodenDatei Zugreife bekomme ich als Rückgabe immer eine Null und ich verstehe nicht wieso. Alle Methoden die ich brauche sind Public. Habt ihr eine Idee?
    Die MethodenDatei ist die WaveClass.cpp und h aus dem Projekt.


Anmelden zum Antworten