000
09.09.2008, 17:12 Uhr
PaRu
|
ich möchte an eine methode einen array übergeben, der in der methode geändert wird. normalerweise mache ich sowas mit call by reference. bloss bei einem array kommt mir das so merkwürdig vor (parameter definition der funktion: *&). anbei ein kleines beispiel, dass auch läuft:
C++: |
#include <string> #include <complex> #include <exception>
int testMethod( std::complex<double>**& array ) {
int n = 3; array = new std::complex<double>*[ n ]; for( int i = 0; i < n; i++ ) { array[i] = new std::complex<double>[ n ]; for( int k = 0; k < n; k++ ) array[i][k] = std::complex<double>( i, k ); } return n; }
int main( int argc, char *argv[] ) {
int n; std::complex<double>** array1;
n = testMethod( array1 );
for( int i = 0; i < n; i++ ) { for( int k = 0; k < n; k++ ) std::cout << "\t" << array1[i][k]; std::cout << std::endl; } delete( array1 );
return EXIT_SUCCESS; }
|
wenn ich den array erstelle, erhalte ich doch einen zeiger auf den array. wieso reicht es nicht aus nur diesen an die methode zu übergeben? -- Gruß Patrick |