lehrkraefte:blc:informatik:ffprg2-2020:esp32-arrays

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:blc:informatik:ffprg2-2020:esp32-arrays [2020/08/21 09:54]
Ivo Blöchliger
lehrkraefte:blc:informatik:ffprg2-2020:esp32-arrays [2020/08/21 15:47] (current)
Ivo Blöchliger
Line 5: Line 5:
 // statisch mit Initialisierung (Grösse automatisch) // statisch mit Initialisierung (Grösse automatisch)
 int ledPins[] = {18,19,21,22,23}; 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 counters[5];  // Platz für 5 int
  
-int data[];  // Noch keine Elemente+int *mydata;  // Noch keine Elemente, nur Platz für einen Pointer (Speicheradresse) 
 +int *moredata; 
  
 void setup() { 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> </code>
  
  • lehrkraefte/blc/informatik/ffprg2-2020/esp32-arrays.1597996451.txt.gz
  • Last modified: 2020/08/21 09:54
  • by Ivo Blöchliger