Beichtpfarrer
Erfahrenes Mitglied
Aiju hat gesagt.:Ist doch egel ob c oder c++...
Das hat nix mit C oder C++ zu tun.
Code:
char* x[] = {new char[26]};
Code:
char* tafel[] = {new char[26]};
char cache[26];
cache = Tafel[0];
Tafel[0] = new char[27];
Tafel[0] = cache;
Das geht in C++ nicht, da du kein Array zuweisen kannst (du kannst es höchstens bei der Initialisierung mit const-werten füllen).
Tafel[0] = cache;
würde dagegen schon funktionieren, das einzige Problem wäre, dass, wenn du das auf alle Elemente von Tafel anwendest (in diesem Fall ja nur eins, siehe oben), würden alle Elemente von Tafel auf die gleiche Speicherstelle verweisen (welche zudem noch lokal wäre). Außerdem wäre es ein ziemliches Speicher-Leck, da du die neuen 27 allokierten chars einfach vergisst.
Aiju hat gesagt.:so vielleicht:andreas_gierisch hat gesagt.:das klappt leider nur, wenn ich feste werte angebe (char alphabet[26][26]).
ich bräuchte das allerdings für variablen (char alphabet[x][y])
Code:void GetTafel(char** alphabet) { for(int i=0;i<26;i++) GetAlphabet(alphabet[26]); }
Für ein array[x][y]; ist das nicht möglich, nur wenn zumindest y const ist, denn es darf nur immer eine Dimension eines Arrays undefiniert sein (logisches Problem, sonst kann der Compiler ja nicht wissen, in welchen Abständen das erste Element einer Dimension vorkommt).
char** alphabet wäre da schon ein Lösungsansatz, nur dass der Typ nicht mit char[][] gleichzusetzen ist.
char[][] stellt ein 2-dimensionales Array aus Elementen von char dar, während char** ein Array (bei entsprechender Benutzung natürlich nur) aus Zeigern auf chars sind.
-> bei char[][] gibts keine Zeiger (außer den Identifier)
Code:
typedef double* YVector = new double [NY+1];
Was soll das "= .... " hinter dem typedef?
Ein typedef erschafft nur ein Alias für einen Bereits existierenden Typen, eine Zuweisung mit ins Spiel zu bringen ist nicht möglich.