GetPrivateProfileString in ein Array



  • Hey Leute,

    ich versuche gerade eine .ini Datei auszulesen und die Werte in einem Array abzuspeichern. Hier ist mein derzeitiger Code:

    char int_buffer[1];
    vector<LPSTR> ini_data;
    int i;
    
    for (i=1; i<7; i++)
    {
        sprintf(int_buffer, "%d", i);
        printf(int_buffer);
        system("PAUSE");
        GetPrivateProfileString("sect", int_buffer, "NULL", 
        ini_data[i], 512, "settings.ini");
    }
    

    Eigentlich sollten damit die Keys 1 bis 7 ausgelesen werden und die Werte im ini_data[] Array gespeichert werden, jedoch gibt er mir folgenden Fehler zurück:

    Unhandled exception at 0x00401099 in ****.exe: 0xC0000005: Access violation reading location 0x00000004. The program '[5608] ****.exe: Native' has exited with code -1073741819 (0xc0000005).
    

    Bítte um Hilfe, danke im Voraus.

    PS: ich hoffe das passt hier in den WinAPI Bereich, ansonsten bitte Verschieben 😉

    Greez ~



  • hab jetzt nur mal kurz drüber geschaut.
    dabei ist mir aufgefallen 🙄
    ich würd mal damit anfangen meinem Bereich ne größe zu geben, bevor ich ihn mit irgendetwas befülle. sonst läuft der puffer schneller über als dir lieb ist. 😉



  • Danke erstmal für den Hinweis, ich habe jetzt das Array mit

    vector<LPSTR> ini_data(10);
    

    definiert, jedoch kriege ich nun folgenden Fehler:

    First-chance exception at 0x752facae in ****.exe: 0xC0000005: Access violation writing location 0x00000004.
    Unhandled exception at 0x752facae in ****.exe: 0xC0000005: Access violation writing location 0x00000004.
    

    😞



  • int_buffer ist auch zu klein: 1 Zeichen geht schon für das 'Ende-Der-Zeichenkette'-Zeichen drauf ("Hallo" = {'H','a','l','l','o','\0'})

    Die einzelnen Items des Vectors muss man vermutlich auch erstmal einmal initialisieren, woher soll der Compiler sonst wissen wie groß die einzelnen Zeichenketten werden sollen...



  • Danke geeky!

    Die Array-Items mussten zuerst initialisiert werden :D, und das mit dem int_buffer hab ich vorhin auch bemerkt. 🙄


Anmelden zum Antworten