Forum: PC-Programmierung Getter und Setter mit array


von Willi K. (kucky)


Lesenswert?

Hallo zusammen,
ich habe ein Problem mit einem Setter.
Ich habe dieses array:
    uint8_t _newPosX[6] = {5, 10, 15,  20, 25, 30};

der Getter lt.
    const uint8_t* getNewPosX() const {
      return _newPosX;
    }
 den Setter habe ich so versucht:
    void setNewPosX(uint8_t* newPosX){
      _newPosX = newPosX;
    }
auch schon in Variationen wie [], *, &. Leider kein Erfolg.
Die Fehlermeldung:

incompatible types in assignment of 'uint8_t* {aka unsigned char*}' to 
'uint8_t [6] {aka unsigned char [6]}'

hilft mir auch nicht wirklich weiter.

Was mache ich da falsch? Für jede Hilfe dankbar.

Gruß Willi.

: Bearbeitet durch User
von x^2 (Gast)


Lesenswert?

Willi K. schrieb:
> Was mache ich da falsch? Für jede Hilfe dankbar.

Du solltest dir darüber klar werden, ob du nur einen Pointer auf die 
Daten setzen und zurückgeben möchtest, oder aber die Daten selbst (also 
kopieren möchtest).

von Niklas Gürtler (Gast)


Lesenswert?

Soll das ganze Array oder nur ein Wert gesetzt werden? Vielleicht hilft 
ja std::vector.

von Willi K. (kucky)


Lesenswert?

Danke für die schnelle Antwort.
Das ist genau mein Dilemma.

ich möchte z.B. dies erreichen:

  term.print(getPosY()+i, getPosX()+FRAME_WIDTH-1, "|", INVERSE);

Die primitiven Setter habe ich verstanden.

Gruß Willi

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Willi K. schrieb:
> term.print(getPosY()+i, getPosX()+FRAME_WIDTH-1, "|", INVERSE);

Mach das mal ohne Pointerarithmetik:
1
term.print(getPosY(i), getPosX(FRAME_WIDTH - 1), "|", INVERSE);

Vielleicht fällt jetzt der Groschen, wie Du Deine "Getter" sinnvoll 
formulieren kannst.

von Willi K. (kucky)


Lesenswert?

Danke für die schnelle Antwort.
Habe ich nicht ganz verstanden, aber ich versuche es.

Vielen Dank nochmal.
Willi

von Willi K. (kucky)


Lesenswert?

Hey,
Problem behoben. Dein Tipp war goldrichtig, ich musste ihn nur richtig 
umsetzen. Wieder was gelernt.

Allen ein schönes Weihnachtsfest.

Gruß Willi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.