1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

2 dimensionaler Array vom Typ struct?

Dieses Thema im Forum "OS X-Developer" wurde erstellt von lodger, 18.01.07.

  1. lodger

    lodger Normande

    Dabei seit:
    06.09.05
    Beiträge:
    578
    Eine Frage an die C Experten hier - folgende Definition habe ich in meiner main() stehen:

    struct MyStruct stVariable[10][10];

    damit habe ich doch, wenn ich mich nicht irre, eine Matrix aus 10x10 Elementen vom Typ Struct angelegt. Wenn ich nun diesen Struct per call by reference (also mittels eines Pointers in der Paramterliste) an eine Funktion übergeben will, wie lautet hierfür der Funktionsprototyp?

    Wäre folgender Funktionsprototyp korret:

    int siMyFunction(struct MyStruct **pstStructPointer);

    oder muß ich sowas ähnliches versuchen:

    int siMyFunction(struct MyStruct *pstStructPointer[][]);

    Bin mir im Moment nicht mehr sicher und frickeln alleine bringt mich nicht wirklich weiter.
    o_O

    EDIT:

    Hier habe ich eine recht gute, wenn auch etwas knappe Erklärung gefunden, sollte jemand mal ein ähnliches Problem haben.

    Gruß,
    lodger
     
    #1 lodger, 18.01.07
    Zuletzt bearbeitet: 19.01.07
  2. TenFan

    TenFan Gast

    Hi
    Ich habe nicht ganz verstanden was Du so willst. Hier habe ich etwas Code für Dich geschrieben. Ich habe nur das zweidimensionale Array auf 2-x-2 Matrix reduziert. Das musst Du ändern. Ich hoffe das hilft Dir.

    Code:
    #include <iostream>
    using namespace std;
    
    struct MyStruct
    {   
        int iWert;
        MyStruct(){iWert =1;}
        ~MyStruct(){}
        void structEingabe(int a);
        int structAusgabe();
    };
    
    void MyStruct::structEingabe(int a)
    {     
         iWert = a;
    }
    
    int MyStruct::structAusgabe()
    {
       return iWert; 
    }
    
    int main()
    {
        MyStruct *stVariable[2][2];
        MyStruct *p;
        int i,j,b;
        for (i =0; i <2 ; i++)   
        {
            for (j =0; j <2 ; j++)
            {
                cout << "Eingabeposition " << i+1 <<","<< j+1<<" :";
                cin >> b;        
                p = new MyStruct;        
                p->structEingabe(b);
                stVariable[i][j]= p;
            }
        }    
        for (i =0; i <2 ; i++)
        { 
            for (j =0; j <2 ; j++)
            {
                cout << "Position " << i + 1 << " :";
                cout << stVariable[i][j]->structAusgabe() << endl;
            }
        }
        cout << "Ende\n";
        system("PAUSE"); //Nicht unbedingt notwendig
        return 0;
    }
    
     

Diese Seite empfehlen