PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2-dimensionales char array, wie gehts?



soul_rebel
04-06-2005, 03:05
ich werde langsam wahnsinnig.... kann mir jemand sagen wie ich dynmisch ein 2-dimensionales chararray alloziiere? also ich mächte ganz einfach sagen wir i strings der größe 30 haben, und habe alle erdenklichen kombinationen versucht aber es klappt nciht...; das hier z.b.
char **temp = new char[i][30] gibt ein
cannot convert `char (*)[30]' to `char**' in initialization mit zwei variablen gehts auch nicht und wenn ich sie umdreheh sagt der i darf nicht in eine konstante expression...
:mad:
ich wäre wirklich super glücklich wenn mir jemand erklären könnte wie ich das anzustellen habe... :)
danke

p.s.: nein eine andere string bibliothek zu benutzen geht nicht, es soll schon ein richitges char array sein...bin schon fast so verzweifelt sinnlos eine struktur anzulegen die nur ein char* drin hat...

Sym
04-06-2005, 03:49
char **temp = new (char*)[10];
for(unsigned int i=0; i<10; i++)
temp[i] = new char[30];
Ist ungetestet, sollte aber funktionieren. Du musst immer erst den ersten Pointer initialisieren und dann den nächsten.

locus vivendi
04-06-2005, 15:48
Wenn du ein "rechtwinkliges"-Array anlegen möchtest, dann sollte es auch so gehen:
int i = 10;
char (* p1)[15] = new char[i][15];

for(int c = 0; c != i*15; ++c)
{
std::cout << "\nc = " << c;
std::cout << "\nc/15 = " << c/15 << "; c%15 = " << c % 15;

p1[c/15][c%15] = 'x';
}