• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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;
}