018
23.06.2007, 19:31 Uhr
Kest
saint
|
Da ja nur zur Laufzeit >anzahl< bekannt ist, ist das... >falsch<. Bei einer ungeraden zahl würde das nicht gehen (vorausgesetzt ich hab richtig verstanden, was du vorhattest).
Also besser in diesem Fall wäre
C++: |
void vertauschen(char** text){ char* _t=text[0]; text[0]=text[1]; text[1]=_t; }
int main() { char** text=new char*[2]; text[0]="Hans"; text[1]="Georg"; vertauschen(text); }
|
Und richtiger wäre zwei >strings< zu vertauschen und nicht die ganze Folge:
C++: |
void vertauschen(char*& a, char*& b){ char* _t=a; a=b; b=_t; }
int main() { char** text=new char*[2]; text[0]="Hans"; text[1]="Georg"; vertauschen(text[0], text[1]); }
|
Und noch besser wäre, statt >verstauschen< >swap< aus >algorithm< zu verwenden:
C++: |
//... #include <algorithm>
int main() { //... std::swap(text[0], text[1]); }
|
Und wenn dein Compiler sowas zulässt:
C++: |
void vertauschen(char * x) {//... }
int main (void) { //... char ** n = new char * [anzahl]; char ** vn = new char *[anzahl]; vertauschen(&n); vertauschen (&vn); }
|
sollteste dir 'nen anderen besorgen, weil er dann zu... >C< wäre (ob das jemand versteht !?!?!?). -- Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<. Dieser Post wurde am 23.06.2007 um 20:01 Uhr von Kest editiert. |