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
  Array, SD Read, Write Binär nilsconrad 14 264 25.01.2017 14:28
Letzter Beitrag: nilsconrad
  Speicher Voll, Array zu groß, Display Datenerfassung nilsconrad 31 642 13.01.2017 18:16
Letzter Beitrag: renid55
  ascii string to int array konvertieren renid55 3 178 29.12.2016 11:49
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 195 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String-Array füllen? torsten_156 9 604 08.07.2016 20:07
Letzter Beitrag: amithlon
  Messwerte in Array speichern ArduinoMega2560 2 580 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  array von Php --> Arduino zu senden (ethernet) Mourti 0 493 27.01.2016 22:11
Letzter Beitrag: Mourti
  Laufzeit Atwist 16 1.246 22.01.2016 21:49
Letzter Beitrag: hotsystems
  Problem mit char array Retian 12 1.202 03.01.2016 22:34
Letzter Beitrag: hotsystems
  Eine Funktion vorher definieren ? arduinofan 23 2.264 30.12.2015 08:42
Letzter Beitrag: amithlon

Gehe zu:


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