ClearArray

Hallo Programmierer und die die es werden wollen :wink: ,

ich habe vor mir ein Einsteigerbuch liegen indem ich gerade das Thema "Serielle Datenübertragung" behandel.

Jetzt gibt dieses Buch mir einen sketch vor der scheinbar, bis auf eine Kleinigkeit, auch funktionieren wird.

Das Problem ist, dass er mir zum löschen des Arrays die Funktion " ClearArray()" vorgibt, aber nicht vom Compiler erkannt wird.
Schreibe ich das klein und mache ein punkt zwischen beiden erkennt er beides, aber es fehlt die Deklaration. Auch ohne Punkt. Egal in welcher Reihenfolge ich die Befehle schreibe(Bsp.: clear.Array o. Array.clear).
Generell finde ich den Befehl Merkwürdig, da es speziell keinen Array beim Arduino gibt ausser in Form eines Char`s. sollte der Befehl dann vllt. clearChar heißen????

Hier der Code:

int laenge = 255;
char dataInput[255];

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:

int i=0;

if (Serial.available())
{
while (Serial.available())
{
dataInput[i++] = Serial.read();
delay(2);
}
Serial.print("Du hast ");
Serial.print("empfangene Daten ");
Serial.println("gesendet.");
}
clear array();

void ClearArray()
for (int x=0; x<laenge; x++)
{
dataInput[x] = NULL;
}
}

Wie löse ich das Problem??
Danke für eure Hilfe

Rookie72:
Wie löse ich das Problem??

Du solltest richtig abschreiben, vermute ich mal.

Bitte setze Deinen Code in Code-Tags, damit er richtig lesbar wird. Nutze vorher in der IDE +t zur Formatierung.

Versuche mal dies (ungetestet):

int laenge = 255;
char dataInput[255];

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

int i=0;

if (Serial.available())
{
  while (Serial.available())
  {
    dataInput[i++] = Serial.read();
    delay(2);
  }
  Serial.print("Du hast ");
  Serial.print("empfangene Daten ");
  Serial.println("gesendet.");
  }
  ClearArray();
}

void ClearArray()
{
  for (int x=0; x<laenge; x++)
  {
    dataInput[x] = NULL;
  }
}

Hi,

Vermutlich fehlt noch ein Funktionsprototyp?

TheSeventhCG:
Hi,

Vermutlich fehlt noch ein Funktionsprototyp?

Sollte bei der IDE eigentlich implizit sein.

clear array();
void ClearArray()

Das geht natürlich nicht

Wobei es etwas unsinnig ist dafür ein eigene Funktion zu schreiben. Dafür gibt es die Stanardfunktion memset()

Funktioniert agmue.

AHHHHH manchmal ist man einfach Blind.

memset() werde ich mal ausprobieren.

ich danke euch!!