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.