Arrays in C++
Arrays in C++ sind nicht so flexibel wie in Python. Z.B. müssen alle Einträge von gleichen Typ sein. Die Grösse wird einmal festgelegt und kann nicht mehr verändert werden (ausser man legt ein neues, grösseres Array an und kopiert die Daten).
// statisch mit Initialisierung (Grösse automatisch) int ledPins[] = {18,19,21,22,23}; int numLeds = sizeof(ledPins)/sizeof(int); // Anzahl Elemente in ledPins int counters[5]; // Platz für 5 int int *mydata; // Noch keine Elemente, nur Platz für einen Pointer (Speicheradresse) int *moredata; void setup() { Serial.begin(115200); delay(200); Serial.printf("Es gibt %d ledPins!\n", numLeds); counters[0] = 3; Serial.printf("counters[0]=%d, counters[1]=%d (könnte irgendwas sein)\n", counters[0], counters[1]); mydata = new int[7]; // Neues Array mit 7 Elementen moredata = new int[10]; moredata[0] = 42; // Ein bisschen Hacking: Pointer-Arithmetik Serial.printf("Adresse von counters: %p, Adresse von mydata: %p, Adresse von moredata %p, Differenz: %d\n", counters, mydata, moredata, (int)(moredata-mydata)); Serial.printf("moredata[0]=%d\n", moredata[0]); mydata[11]=23; // Das darf man doch nicht! Serial.printf("moredata[0]=%d\n", moredata[0]); // WTF? delete[] mydata; // Gaaanz wichtig! Array wieder löschen, sonst kann es Speicherprobleme geben. delete[] moredata; } void loop() { // put your main code here, to run repeatedly: }