Dynamisches mehrdimensionales char-Array zur Laufzeit anlegen
-
Hallo zusammen,
ich würde gerne ein mehrdimensionales char-Array anlegen, dessen Größe zu Anfang des Programms noch nicht bekannt ist.
Wie man das mit integer-Werten hinkriegt ist mir bekannt, aber mit char scheint das nicht machbar zu sein. Google sowie Mitarbeiter konnten mir bisher leider auch nicht weiterhelfen

Vielleicht hat ja hier jemand nen Rat für mich. Ich könnte mein Programm zwar auch ohne dieses Array schreiben, aber interessieren würde mich schon, ob sich das nicht irgendwie realisieren lässt...
Danke im Voraus! LG, moonbaby
-
Nimm einfach deine Konstruktion für int's und ersetze "int" durch "char", dann sollte das funktionieren

-
jahaaa, so schlau war ich auch schon... funktioniert aber leider nicht.
char* skytab = new char[zeilen][schluesselwert];Zitat Mitbewohner: "du versuchst nen char in nen pointer zu quetschen, geht nicht.
beim int funktioniert das weil ein Pointer 4 Bytes groß ist und eine int variable selber auch."Ohne Pointer und mit vier eckigen Klammern funktioniert es aber leider auch nicht

-
Hallo,
schau mal hier rein. Da hab ich gezeigt, wie man Matrizen und 3D-Arrays dynamisch allokiert. Sonst gibt's auch noch was in der FAQ dazu.
MfG
GPC
-
moonbaby schrieb:
Zitat Mitbewohner: "du versuchst nen char in nen pointer zu quetschen, geht nicht.
beim int funktioniert das weil ein Pointer 4 Bytes groß ist und eine int variable selber auch."Der zweite Satz ist völliger Quatsch. So wie ein zweidimensionales dynamisches char-Array in einem char** lebt, so lebt ein zweidimensionales dynamisches int-Array auch in einem int** - sag das Deinem Mitbewohner bitte

EDIT:
Blödsinn meinerseits, da man ein zweidimensionales Array so sowieso nicht allokieren kann - aber im Grunde stimmt die Aussage oben (auch wenn ein char(*)[wertezahl] immernoch inkompatibel zu char** wäre wenn's denn ginge)
-
Hallo ihr,
ich wollte mich mal für die schnellen und guten Antworten bei euch bedanken. Ich hab's jetzt zwar letztendlich doch ohne das Array gelöst, aber immerhin weiß ich jetzt wie man das macht.

Besonderen Dank an dieser Stelle mal an GPC, dessen Tutorial selbst jemandem wie mich Spaß an dem ganzen Zeigerkram haben lässt.
Ich finde es immer wieder klasse, dass es Leute gibt, die sich die Zeit nehmen so ein langes Tutorial zu verfassen ohne was dafür zu bekommen (außer vielleicht die Anerkennung der anderen User - meine auf jeden Fall). Das wollte ich nur mal gesagt haben...In diesem Sinne, macht weiter so

LG, moonbaby
-
LordJaxom schrieb:
So wie ein zweidimensionales dynamisches char-Array in einem char** lebt,
und das ist nun völliger unsinn. man kann char** pointer auf eine weise benutzen, die ein zweidimensionales array simuliert (zumindest einige eigenschaften davon). es ist dennoch etwas völlig anderes. die einzige dynamische form eines zweidimensionalen arrays erhält man über ein T (*)[N] mit konstantem N. alles andere ist eben kein (mehrdimensionales) array. die tatsache, dass doppelpointer in diesem forum immer wieder als zweidimensionale arrays verkauft werden, macht diese behauptung nicht wahr. im übrigen sei hier mal auf boosts multi_array verwiesen.
-
Deshalb mein Edit
