Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 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). <code c++> // 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: } </code> lehrkraefte/blc/informatik/ffprg2-2020/esp32-arrays.txt Last modified: 2020/08/21 15:47by Ivo Blöchliger