float to void*



  • ipsec schrieb:

    Theoretisch macht man das so:

    int **array = new int*[2];
    array[0] = new int[5];
    array[1] = new int[7];
    mysterioese_funktion(array);
    

    Wenn, dann aber ohne Initialisierung vor dem Aufruf, es handelt sich ja um einen reinen Output-Parameter.

    Andererseits kann man dann wegen der Kopie des int** nur einen int* innerhalb der Funktion verändern, was einem int*& -Parameter gleichkommen würde. Aber es geht doch um Arrays. Ein int[size] -Array kanns wegen der zweifachen Indirektion jedoch nicht sein, zumindest nicht ohne Würgen.

    Fragen über Fragen... 😕



  • Nexus schrieb:

    Wenn, dann aber ohne Initialisierung vor dem Aufruf, es handelt sich ja um einen reinen Output-Parameter.

    Naja ich dachte an sowas:

    void mysterioese_funktion(int **out)
    {
        out[0][3] = 42;
        out[1][5] = 10^10^10^32;
    }
    

    Aber natürlich kann ich mich auch irren.



  • Nein, das macht Sinn. Ich dachte eben, das Array selbst würde von der Funktion erzeugt, dabei sind es nur die Elemente. 🙂



  • Die Funktion gibt mir die Anzahl der vorhandenen Module in einem Gerät und zu jedem Modul die Anzahl der Kanäle.

    Es gibt keine festen Vorgaben an die Struktur, wie ich das abspeichern muss. Hauptsache, ich speicher es irgendwie. D.h. ich kann mich mit dem Aufbau des Arrays nach Belieben der Funktion anpassen.


Anmelden zum Antworten