Zeiger auf Zweidimensionales Array



  • Hi Leute!

    Kann mir einer von euch bitte sagen wie ich einen Zeiger auf mein Array

    Rot[660][500]
    

    schreiben kann.

    Schonmal danke im Vorraus

    MfG
    Blind



  • &Rot liefert die Adresse von Rot



  • Ich hatte schon mal

    unsigned char* rot[650][500] ;
    *rot[0][0]=&Rot;
    

    aber da war der compiler auch am Fehlerausgeben.

    error C2440: '=' : 'unsigned char (*)[660][500]' kann nicht in 'unsigned char' konvertiert werden
            Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    


  • Du versuchst grad *rot[0][0] (EIN Char-Element des ganzen Vektors!) die Adresse des anderen Vektors Rot zuzuweisen - dat jet doch net... 😉

    unsigned char* rot;
    rot = &Rot;

    damit zeigt rot auf Rot



  • Ich bekomme immernoch den Fehler

    error C2440: '=' : 'unsigned char (*)[660][500]' kann nicht in 'unsigned char *' konvertiert werden
            Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    
    unsigned char Rot[660][500];              //definition von Rot
    


  • unsigned char Rot[100][100];
    	unsigned char* rot = &(Rot[0][0]);
    

    Lässt sich bei mir kompilieren. Und sollte das tun, was du versuchst.



  • MuehBln schrieb:

    Du versuchst grad *rot[0][0] (EIN Char-Element des ganzen Vektors!) die Adresse des anderen Vektors Rot zuzuweisen - dat jet doch net... 😉

    unsigned char* rot;
    rot = &Rot;

    damit zeigt rot auf Rot

    Wie MuehBln schon schrieb:

    unsigned char Rot[650][500];
    unsigned char* rot;
    rot = &Rot;
    

    Dann haste nen Zeiger auf Rot.
    Oder wie willst Du das jetzt haben?

    *langt sich an Kopf*
    Geht natprlich nicht so wie ich beschrieb, sondern wie mein Vorposter! 😕



  • Danke das Funktioniert bei mir jetzt auch.

    Ich habe nochmal eine andere Frage und zwar wie kann ich eine Funktion aus einer anderen Klasse aufrufen?

    Ich habe es mit

    RotDlg::OnRot(rot);
    

    Versucht aber das Funktioniert bei mir nicht muss ich die Funktion erst als Global deffinieren? Wenn ja wie mache ich das?

    Ich bekomme folgenden Fehler:

    error C2352: 'RotDlg::OnRot' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion
            c:\tmp\kopie von kopie von firststep 0.3\rotdlg.h(19) : Siehe Deklaration von 'OnRot'
    


  • so

    class RotDlg
    {
    public:
    static void OnRot(int rot);
    };
    
    int main()
    {
    RotDlg::OnRot(100);
    return 0;
    }
    


  • Sicher, dass das das tut, was du haben willst? (Doofer Satz)

    Statische Member sind für alle Objekte gleich.

    Ansonsten brauchst du eine Objektinstanz.


Anmelden zum Antworten