TDM Geschrieben 9. Dezember 2005 Geschrieben 9. Dezember 2005 Ich habe ein Problem, dass ich einen 3-fachen Pointer anlegen möchte - nur leider geht das mit new irgentwie nicht - sobald ich etwas in die Variable schreiben will, gibt er mir eine fehlermeldung aus. int main(int argc, char* argv[]) { int i = 0; char*** pppcztstr = new char**; strcpy(pppcztstr[0][1], IE_URL_01); strcpy(pppcztstr[1][1], IE_URL_01); strcpy(pppcztstr[2][1], IE_URL_02); strcpy(pppcztstr[3][1], IE_URL_04); strcpy(pppcztstr[4][1], IE_URL_05); strcpy(pppcztstr[5][1], IE_URL_06); strcpy(pppcztstr[6][1], IE_URL_07); strcpy(pppcztstr[7][1], IE_URL_08); strcpy(pppcztstr[8][1], IE_URL_09); strcpy(pppcztstr[9][1], IE_URL_10); strcpy(pppcztstr[10][1], IE_URL_11); while(i<10) { _execv(IE_PATH, pppcztstr[i]); } return 0; } Kann mir jemand sagen warum ? Btw: die IEs sind alles char[]s Zitieren
Guybrush Threepwood Geschrieben 9. Dezember 2005 Geschrieben 9. Dezember 2005 Weil du keinen Speicher reserviert hast um eine Zeichenfolge aufzunehmen. Such mal hier nach mehrdimensionalen Arrays. Da solltest du die Lösung finden. Zitieren
Hakawamu Geschrieben 15. Dezember 2005 Geschrieben 15. Dezember 2005 hihi, fast das gleiche hab ich letztens schonmal gesehn'. du hast nur den speicher für einen pointer auf einen char-pointer reserviert, mehr nicht. in C ist es soweit ich weiss nicht vorgesehen den speicher so dynamisch zu verwalten, wie du es willst. wenn du es wirklich dynamisch haben willst, solltest du es in c++ z.b. mit der vector class machen. oder mit listen. gibt mehrere möglichkeiten. in C wuerde ich vorschlagen, dass du ein array mit char-pointern anlegt und dann fuer jedes feld im array speicher allokierst. und in jeden feld dann den pointer auf dein allokierten speicher ablegst. etwa so: char *mein_array[10]; for(i = 0; i < 10; i++) { mein_array[i] = new char[8]; } bei der deklarierung von mein_array erhältst du ein char*-array mit 10 feldern. in der schleife werden diese 10 felder mit pointern auf char-arrays mit 8 feldern gefüllt. ich hoffe ich konnte dir helfen. Zitieren
Guybrush Threepwood Geschrieben 15. Dezember 2005 Geschrieben 15. Dezember 2005 Das ist Unsinn Ich weiß zwar nicht ob die Dimensionen begrenzt sind aber du kannst mit Sicherheit mehr Dimensionen dynamisch anlegen wie du jemalas brauchen wirst. Wie bereits oben gesagt gibt es mehre Threads die das bereits ausführlich erklären. Zitieren
Hakawamu Geschrieben 15. Dezember 2005 Geschrieben 15. Dezember 2005 ich habe nicht gesgagt, dass man nicht so viele dimensionen anlegen kann. du kannst du viele dimensionen machen wie du willst. es ging darum, dass er ein array nicht einfach in ein-dimesionaler richtung verlaengern kann. er muss den speicher fuers erste array vorher allokieren. und in den feldern des arrays dann die pointer auf den speicher ablegen, den man dann ggf. in einer schleide neu allokiert Zitieren
Guybrush Threepwood Geschrieben 15. Dezember 2005 Geschrieben 15. Dezember 2005 Nein eigentlich nicht. Er will lediglich ein 3 dimensionales Array in das er seine Strings ablegen kann und dafür hat er keinen Speicher reserviert. Das ist das ganze Problem. Zitieren
Hakawamu Geschrieben 15. Dezember 2005 Geschrieben 15. Dezember 2005 na denn hab ich ihn falsch verstanden ^^ Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.