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
  String nach Byte Array in ASCII-Codierung nexus1212 7 357 05.11.2017 14:36
Letzter Beitrag: Tommy56
  char-Array nach int? torsten_156 8 404 04.11.2017 18:44
Letzter Beitrag: Tommy56
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 10 800 30.10.2017 19:33
Letzter Beitrag: Bino87
  Code wird langsamer mit der Laufzeit Wampo 9 489 05.10.2017 11:32
Letzter Beitrag: SkobyMobil
  pinMode mit array luj1990 6 707 22.07.2017 10:24
Letzter Beitrag: Binary1
  Array-Index zu groß: Tückisches Verhalten GuaAck 6 445 05.05.2017 22:03
Letzter Beitrag: Tommy56
  Array mit Serial.read befüllen Gonmaus 4 579 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  Array länge oOSpikeOo 4 413 28.03.2017 18:57
Letzter Beitrag: oOSpikeOo
  Arraysize definieren oOSpikeOo 17 734 25.03.2017 23:25
Letzter Beitrag: Tommy56
  ascii string to int array konvertieren renid55 3 685 29.12.2016 11:49
Letzter Beitrag: Tommy56

Gehe zu:


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