Veröffentlicht 9. Dezember 200519 j 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
9. Dezember 200519 j Weil du keinen Speicher reserviert hast um eine Zeichenfolge aufzunehmen. Such mal hier nach mehrdimensionalen Arrays. Da solltest du die Lösung finden.
15. Dezember 200519 j 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.
15. Dezember 200519 j 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.
15. Dezember 200519 j 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
15. Dezember 200519 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.