- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 23

Thema: class mit übergebenen array Größen erstellen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    update
    stimmt immer noch, gerade kontrolliert:
    selber runtime error auch für

    Code:
      
         void init() {
            for(int i=0; i<MENULEN; i++) {
               sprintf(buf,"%d line %d", i);
               strcpy(list[i], buf);  // editiert
            }
         }
    - - - Aktualisiert - - -

    Zähler ist ggf auch char, weil es nur von 0 bis 20 geht maximal

    - - - Aktualisiert - - -

    @moppi:
    ja, so mit der externen Funktion ging es bereits vorher.
    Das Problem ist ja gerade, es per OOP-Methode intern zu machen, genau solche r/w Zugriffe brauche ich später noch öfters .
    Geändert von HaWe (05.12.2018 um 22:19 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wie kommst Du auf einen Runtime Error?

    Hier mal die Ausgabe, die ich mit Deinem Code habe, das "Hallo" habe ich in loop() eingefügt, er schreibt es immer wieder hin, das Programm arbeitet also weiter:

    Code:
    Serial started
    5 newline_
    > newline_
    
    
    - 8245
    -⸮O⸮⸮
    
    
    -s⸮⸮
    
    
    -[⸮⸮
    
    
    -⸮⸮⸮
    
    
    -> newline_
    -⸮⸮*⸮
    
    
    -οy⸮
    
    
    -⸮⸮
    
    
    -⸮}⸮t
    
    
    Hallo
    Hallo
    Hallo
    Hallo

    Wenn ich die init() ändere:

    Code:
         void init() {
            for(int i=0; i<MENULEN; i++) {
               sprintf(buf,"%d line %d", i);
               strcpy(list[i], buf); //i*MENULEN
            }
    kommt das raus:

    Code:
    0 line 8245
    1 line 8245
    2 line 8245
    3 line 8245
    4 line 8245
    5 line 8245
    6 line 8245
    7 line 8245
    8 line 8245
    9 line 8245
    Jedenfalls kein Error und kein Abbruch bei mir.
    Geändert von Moppi (05.12.2018 um 22:07 Uhr)

  3. #3
    HaWe
    Gast
    manno, du hast Recht, danke!
    Vor lauter indices schwirrt mir schon der Schädel.
    Auch ich kriege jetzt

    0 line 126
    1 line 65280
    2 line 65280
    3 line 65280
    4 line 65280
    5 line 65280
    6 line 65280
    7 line 65280
    8 line 65280
    9 line 65280

    und es muss ntl heißen
    sprintf(buf,"%d line %d", i, i);

    dann steht da auch
    0 line 0
    1 line 1
    2 line 2
    3 line 3
    4 line 4
    5 line 5
    6 line 6
    7 line 7
    8 line 8
    9 line 9


    vielen Dank nochmal!

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Dennoch verstehe ich nicht, wie es zum Runtime Error kam? - Du hast es doch in den Code rein geschrieben? Oder war das nur, um etwas Verwirrung zu stiften?

    Davon abgesehen, shedepe hatte schon was von falschen Variablen in der Schleife geschrieben und mir war das auch aufgefallen, dass die Handhabung der Arrays irgendwie etwas konfus war. Hatte ja Gestern, 20.40 Uhr geschrieben: "Habe aber den Eindruck, dass die Arrays nicht richtig gehandhabt werden." Das hast Du dann wohl irgendwie übersehen ...

    MfG
    Geändert von Moppi (06.12.2018 um 05:37 Uhr)

  5. #5
    HaWe
    Gast
    es war ein copy- und paste-Error.
    In dem kopierten neuen Code stand zuerst
    strcpy(list[i*CAPSLEN], buf);
    und auch mal
    strcpy(list[i*MENULEN], buf);

    aber dann statt
    strcpy(list[i], buf);

    fälschlicherweise dann durch falsches copy+paste und falsches heraus-löschen
    strcpy(list[MENULEN], buf);
    und hier beim letzten gabs NATÜRLICH wieder einen Fehler

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ach Du liebe Zeit, oh oh oh

    Hauptsache es funktioniert mal jetzt.

    Aber das sind eben so Sachen, die man immer im Kopf haben muss: habe ich die Funktion richtig angewendet, sind Parameter richtig übergeben, Variablen entsprechend deklariert und sind die auch definiert, sehe ich Schreibfehler im Code.

    MfG
    Geändert von Moppi (06.12.2018 um 09:36 Uhr) Grund: Hinweise

  7. #7
    HaWe
    Gast
    tja, nach 36 Stunden erfolglosem rumprobieren... und dann ist man ja oft eh gegenüber eigenen Fehlern betriebsblind...

Ähnliche Themen

  1. Change member of a class from another class
    Von iciwi im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 27.08.2016, 09:45
  2. neues Byte aus Byte-Array erstellen
    Von BoondockDuck im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 06.09.2008, 07:53
  3. Bits in sämtlichen Größen :)
    Von squelver im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 22.11.2007, 12:02
  4. SMD-Größen für SMD-Anfänger
    Von jeybo im Forum Elektronik
    Antworten: 22
    Letzter Beitrag: 29.08.2006, 07:04
  5. Eagle - Größen
    Von BlackDevil im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 9
    Letzter Beitrag: 27.03.2006, 22:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress