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
  Arraysize definieren oOSpikeOo 17 158 25.03.2017 23:25
Letzter Beitrag: Tommy56
  ascii string to int array konvertieren renid55 3 219 29.12.2016 11:49
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 235 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String-Array füllen? torsten_156 9 673 08.07.2016 20:07
Letzter Beitrag: amithlon
  Messwerte in Array speichern ArduinoMega2560 2 637 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  array von Php --> Arduino zu senden (ethernet) Mourti 0 515 27.01.2016 22:11
Letzter Beitrag: Mourti
  Laufzeit Atwist 16 1.306 22.01.2016 21:49
Letzter Beitrag: hotsystems
  Problem mit char array Retian 12 1.304 03.01.2016 22:34
Letzter Beitrag: hotsystems
  Eine Funktion vorher definieren ? arduinofan 23 2.388 30.12.2015 08:42
Letzter Beitrag: amithlon
  Umwandlung von Array in String Wampo 2 676 09.12.2015 21:58
Letzter Beitrag: Wampo

Gehe zu:


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