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
  pinMode mit array luj1990 6 228 22.07.2017 10:24
Letzter Beitrag: Binary1
  Array-Index zu groß: Tückisches Verhalten GuaAck 6 275 05.05.2017 22:03
Letzter Beitrag: Tommy56
  Array mit Serial.read befüllen Gonmaus 4 390 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  Array länge oOSpikeOo 4 237 28.03.2017 18:57
Letzter Beitrag: oOSpikeOo
  Arraysize definieren oOSpikeOo 17 446 25.03.2017 23:25
Letzter Beitrag: Tommy56
  ascii string to int array konvertieren renid55 3 488 29.12.2016 11:49
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 363 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String-Array füllen? torsten_156 9 981 08.07.2016 20:07
Letzter Beitrag: amithlon
  Messwerte in Array speichern ArduinoMega2560 2 921 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  array von Php --> Arduino zu senden (ethernet) Mourti 0 586 27.01.2016 22:11
Letzter Beitrag: Mourti

Gehe zu:


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