• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

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.
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
 
Zuletzt bearbeitet:

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;
}