Energia MSP430 Zweidimensionale Array`s?

OP #4300384
Hi Leute,
ich versuche gerade ein zweidimensionales array in dem Energia für einen 
MSP430G2553 zu erstellen. Aber Energia zickt rum..
"..._4.cpp:13:42: error: too many initializers for 'int [8][10]'"

Kann es sein das Enegia zweidimensionale array`s nicht unterstützt?
#4300385
Markus G. schrieb:
> Hi Leute,
> ich versuche gerade ein zweidimensionales array in dem Energia für einen
> MSP430G2553 zu erstellen. Aber Energia zickt rum..
> "..._4.cpp:13:42: error: too many initializers for 'int [8][10]'"
>
> Kann es sein das Enegia zweidimensionale array`s nicht unterstützt?

Kann ich mir nicht vorstellen. Mehrdimensionale Arrays sind für einen C 
Compiler eine leichte Übung. Zumal es sie eigentlich gar nicht gibt und 
nur durch syntaktischen Zucker im Arrayhandling abgearbeitet werden.

Vielleicht hast du dich auch einfach nur verzählt oder die Syntax zur 
Initialisierung nicht eingehalten?
OP #4300407
Das hier ist das array:



int muster [8] [10] ={  {0,0,0,0,0,0,0,1},
                        {0,0,0,0,0,0,1,0},
                        {0,0,0,0,0,0,1,1},
                        {0,0,0,0,0,1,0,0},
                        {0,0,0,0,0,1,0,1},
                        {0,0,0,0,0,1,1,0},
                        {0,0,0,0,0,1,1,1},
                        {0,0,0,0,1,0,0,0},
                        {0,0,0,0,1,0,0,1},
                        {0,0,0,0,1,0,1,0}};


Hab ich da was falsch gemacht?
Gast #4300411
Dauergast schrieb:
> Vermutlich gibst Du in Deinem geheimen Code

Ok, da habe ich mich getäuscht :)

> zu viele Initializer an.

aber da nicht ... Du gibst 10 Initializer an, hast aber nur 8 Elemente 
definiert - anders ausgedrückt, Du hast die Dimensionen vertauscht.
OP #4300412
Eigentlich nur diese 5 :

int shiftPin = P2_0; //Pin verbunden mit SH_CP des 74HC595
int storePin = P2_1; //Pin verbunden mit ST_CP des 74HC595
int dataPin= P2_2; //Pin verbunden mit DS des 74HC595

int j = 0;

int muster [8][10] ={   {0,0,0,0,0,0,0,1},
                        {0,0,0,0,0,0,1,0},
                        {0,0,0,0,0,0,1,1},
                        {0,0,0,0,0,1,0,0},
                        {0,0,0,0,0,1,0,1},
                        {0,0,0,0,0,1,1,0},
                        {0,0,0,0,0,1,1,1},
                        {0,0,0,0,1,0,0,0},
                        {0,0,0,0,1,0,0,1},
                        {0,0,0,0,1,0,1,0}};

+ einen in ner for-Schleife
Gast #4300419
Noch einfacher ausgedrückt, deklariert Du "muster" mit 8 Zeilen zu je 10 
Spalten, initialisierst dann aber mehr als 8 Zeilen. (Das Du nur 8 von 
den 10 Spalten initialisierst, ist dem gcc egal, das fällt erst dem 
Misra-Validator auf.)
#4300428
@ Markus Gillhoff (Firma: Fahrzeugelektronik) (hulk85)
1
int muster [8][10] ={   {0,0,0,0,0,0,0,1},
2
                        {0,0,0,0,0,0,1,0},
3
                        {0,0,0,0,0,0,1,1},
4
                        {0,0,0,0,0,1,0,0},
5
                        {0,0,0,0,0,1,0,1},
6
                        {0,0,0,0,0,1,1,0},
7
                        {0,0,0,0,0,1,1,1},
8
                        {0,0,0,0,1,0,0,0},
9
                        {0,0,0,0,1,0,0,1},
10
                        {0,0,0,0,1,0,1,0}};

Falsch. Du definierst ein 8x10 Array, also musst du 8 Einzelarray a 10 
Elementen bereitstellen. Oder deine Definition auf [10][8] ändern.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.