Pass By Reference Mehrdimensionale Arrays Mit Unbekannter Größe

How to pass by reference mehrdimensionale Arrays mit unbekannter Größe, die in C oder C++?

EDIT:

Beispielsweise in der main-Funktion habe ich noch:

int main(){
    int x, y;
    int arr[x][y];
    //pass_by_ref(/* passing just arr[][] by reference */);
}  

und die Funktion:

void pass_by_ref(/* proper parameter for arr[][] */){
    //int size_x_Arr = ???
    //int size_y_arr = ???
}

Wie die Umsetzung der auskommentierte Zeile?

  • Treffen Sie Ihre Wahl - in C++ können Sie std::vector& oder andere ähnliche Arten, in C müssen Sie die Größe als zusätzliche parameter oder als element, wenn Sie einen ganzzahligen Typ).
  • Tatsächlich, Sie können nur übergeben Sie ein array per Referenz mit unbekannter Größe! (OK, es gibt einen trick mit einem struct, aber lasst uns nicht dorthin). Was haben Sie versucht?
  • In C ist es unmöglich, da C keine Verweise. In C++ ist, ist es unmöglich, weil es keine Unterstützung für array mit variabler Länge.
  • möglich, Duplikat der Wie kann ich passiere ein mehrdimensionales array an eine Funktion?
  • In C, kurz, Sie nicht. Sie müssen ein Konstrukt, das bestimmt die Dimensionierung auf eine Nutzung-Zeit. Wie Sie gleen, die Größe, die info ist bis zu Ihnen.
  • Wie kann Sie genau definieren Ihre "mehrdimensionale Arrays mit unbekannter Größe" ?

InformationsquelleAutor Ifan Iqbal | 2013-03-06
Schreibe einen Kommentar