INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Array während Laufzeit neu definieren
26.08.2015, 19:04 (Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2015 19:06 von BennIY.)
Beitrag #1
Array während Laufzeit neu definieren
Da programmiert man schon so viele Jahre und trotzdem gibt es was was man eigentlich noch nicht gemacht hat.

byte Buffer[] = {0,255,0,255,255,0,255,0};
Diese Art der Arry Initialisierung ist einem ja bekannt doch nun möchte ich es im Programm vollkommen umschreiben.

So habe ich ganz oben stehen, da ich es global brauche:

byte Buffer[8];

Nun möchte ich diese 8 Werte von Grund auf ändern.
Meine Versuchung:

Buffer[] = {0,1,0,3,3,0,4,0};
Buffer[8] = {0,1,0,3,3,0,4,0};
Buffer[sizeof(Buffer)] = {0,1,0,3,3,0,4,0};

Doch scheinbar funktioniert das nicht, also wie lautet die korrekte Syntax wenn ich ein ganzes Array neu beschreiben möchte ohne es zu deklarieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.08.2015, 19:15 (Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2015 19:17 von HaWe.)
Beitrag #2
RE: Array während Laufzeit neu definieren
hi,
der Grund, warum es nicht geht, ist, dass es in C nicht so geht - es klappt so nur beim Initialisieren (CMIIW) Wink
du kannst nur überschreiben, indem du jede Array-Zelle einzeln einem Wert zuweist

Buffer[0]=...
Buffer[1]=...

usw.

Es gibt aber einen Workaround:

du kannst Hilfsbuffer definieren:
byte Buffer[8];
byte B1[] = {0,255,0,255,255,0,255,0};
byte B2[] = {0,1,0,3,3,0,4,0};

und dann im Programm an der richtigen Stelle zuweisen:

memcpy(Buffer, B1, sizeof(Buffer);
//...
memcpy(Buffer, B2, sizeof(Buffer);


HTH!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.08.2015, 19:22 (Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2015 20:30 von BennIY.)
Beitrag #3
RE: Array während Laufzeit neu definieren
Ja das das in C nicht geht gut möglich erstaunlich fand ichs, dass ich noch nie in die Situation kam. Einzeln definieren kommt nicht in frage der Buffer ist gross. Ich versuche es mit memcpy und einem hilfsbuffer, immer diese Umwege dankeschön.

Gibt da diverse Fehler bei diesem Code: B1 Scheint schon in einem header von Arduino verwendung gefunden zu haben.
Wenn einer der das Liest ein großen Fehler gespruckt bekommt einfach B1 umbenennen zu was anderem.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ein als "const" deklariertes Array übergeben Retian 5 130 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String-Array füllen? torsten_156 9 452 08.07.2016 20:07
Letzter Beitrag: amithlon
  Messwerte in Array speichern ArduinoMega2560 2 422 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  array von Php --> Arduino zu senden (ethernet) Mourti 0 448 27.01.2016 22:11
Letzter Beitrag: Mourti
  Laufzeit Atwist 16 1.116 22.01.2016 21:49
Letzter Beitrag: hotsystems
  Problem mit char array Retian 12 1.008 03.01.2016 22:34
Letzter Beitrag: hotsystems
  Eine Funktion vorher definieren ? arduinofan 23 2.031 30.12.2015 08:42
Letzter Beitrag: amithlon
  Umwandlung von Array in String Wampo 2 534 09.12.2015 21:58
Letzter Beitrag: Wampo
  Array mit Zähler steuern ferdi 20 1.614 19.11.2015 15:11
Letzter Beitrag: ardu_arne
  Verschiedene Positionen über array? paq 2 715 23.07.2015 08:11
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste