• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

2 dimensionaler Array vom Typ struct?

lodger

Normande
Registriert
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.
:-/

EDIT:

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

Gruß,
lodger
 
Zuletzt bearbeitet:
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;
}