Arduino: Initialisierung eines array funktioniert nicht.

Gast #5853050
Ich deklariere und initialsiere eine int zahl1 und int feld1[5] jeweils 
in einem Befehl ohne Probleme. Jetzt möchte ich für die gleichen 
Variablentypen die Deklaration und Initialisierung trennen. Für int 
zahl2 funktioniert das problemlos. Für int feld2[5] funktioniert nur die 
Deklaration. Folglich compiliert der unten angegebene Code erfolgreich.

Bei der von der Deklaration getrennten Initialisierung für feld2[] ist 
das nicht mehr der Fall: Entferne ich in der auskommentierten Zeile die 
"//" gibt es dort die Fehlermeldung "expected primary-expression before 
']' token".

Was mache ich falsch?
1
int zahl1 = 5;
2
int zahl2;
3

4
int feld1[5] = {18, 39, 42, 25, 69}; 
5
int feld2[5];
6

7
void setup() {
8
zahl2 = 5;
9

10
//feld2[] = {18, 39, 42, 25, 69};
11
}
12

13
void loop() {
14
}
Gast
Wenn du es separat machen willst, ist das keine Initialisieruung mehr, 
sondern eine Zuweisung.


Das geht dann bei einem Array nicht mehr so einfach.
Moderator
Johann L. schrieb:
> memcpy (feld2, (const int[]) { 18, 39, 42, 25, 69 }, sizeof (feld2));

Das Compound-Literal gibt es strenggenommen nur in C, nicht aber in C++,
wo es lediglich als GCC-spezifische Spracherweiterung verfügbar ist. In
der Arduino-Welt spielt das aber vermutlich keine Rolle.
Gast
Was hat das mit Arduino zu tun wenn es im gcc enthalten ist? Wenn es 
verfügbar ist, dann ist es verfügbar, dann ist es verfügbar, dann ist es 
verfügbar, dann ist es verfügbar, dann ist es verfügbar, dann ist es 
verfügbar...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 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.