- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: memory löschen mit c

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hi,

    die Definition kommt aber auf das selbe raus.

    Code:
    #define        MAPSIZE_XY                                                300
    #define        MAPSIZE_XY_MM                                        10000
    #define         MAX_COORDIANTE                                    90000
    #define         MAP_FACTOR                                                33                // 1 Grid = 33  mm
    Der Code
    Code:
                *(pointer[offset]) &= 0xfe;
    gibt diesen Fehler ?!

    ./source/nav.cpp:229: error: invalid type argument of `unary *'

    Diese Zeile ist hingegen o.k.
    Code:
                *(pointer + offset) &= 0xfe;
    Leider ist der Effekt immer noch vorhanden. Bei einer neuberechnung eines neuen Zielpunkt wird der zu überwachende Korridor zwar neu berechnet und auch eingezeichnet. Nur wird der alte nicht gelöscht. Siehe Bild.

    Ich will den Speicher nicht löschen, da hier auch bereits gefunden Objekte dann gelöscht werden würde.

    Gruss R.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken kSCADA3.jpg  
    Geändert von Ritchie (29.08.2012 um 21:18 Uhr)
    Kaum macht man es richtig, schon funktioniert's ...

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hi,

    hier noch etwas seltsameres

    Code:
    void    Navigation::ResetWalkWay(void)
    {
    unsigned char             *pointer;                                                        // Daten pointer
    long            offset;
    
        if(m_mappointer != NULL )                        // Besteht noch eine Karte im Speicher
            {
            pointer = m_mappointer;
    
            printf("Hallo 1\n");
    
    
            for(offset=0;  offset  < 90000;  offset++);
                {
                printf("Hallo 2\n");
                *(pointer + offset) &= 0xfe;
    //            pointer++;
                }
            }
    }
    Hat diese Ausgabe:
    Hallo 1
    Hallo 2
    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hi,

    so hat es dann jedenfalls funktioniert. Ich habe den Schleifentyp geändert.

    Code:
            while( offset < 90000)
                {
                *(pointer + offset) &= 0xfe;
                offset++;
                }
    Jetzt arbeitet es wie erwartet.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken kSCADA4.jpg  
    Kaum macht man es richtig, schon funktioniert's ...

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Ich hatte auch pointer[offset] und nicht *pointer[offset] geschrieben ... Wie auch immer, das ist reichlich mysteriös, da beide Varianten (for/while) eigentlich aufs Gleiche rauskommen sollten.
    Das Ergebnis aus Post #6 ist absurd, ich hätte 90000 Mal "Hallo 2" erwartet. Hast du evtl. Probleme mit sehr vollem Speicher, dass da Stack und Heap ineinander rein laufen?

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hallo Markus,

    ich würde auch sowas mit dem Stack vermuten. Jedoch hat dieser Rechner noch genügend Speicher frei. Kenn aber jetzt nicht die genauen Systemeinstellungen.

    Ich hatte ja auch eine Unzahl von "Hallo 2" vermutet. Hier scheint es wirklich zu einem Abbruch gekommen zu sein.

    @pointer[offset]
    Klar, jetzt wo ich das lese, ist es mir auch klar wieso.

    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

Ähnliche Themen

  1. Memory Lock Bits
    Von dj5am im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.11.2011, 17:31
  2. 1 kanal memory baustein
    Von hasee im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 20.03.2008, 21:07
  3. External Memory Controller
    Von someone80 im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 0
    Letzter Beitrag: 17.12.2007, 10:10
  4. Memory dump und ändern
    Von for_ro im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 11.11.2007, 11:07
  5. Memory Erweiterung für µC
    Von Mobius im Forum Eigene fertige Schaltungen und Bauanleitungen
    Antworten: 2
    Letzter Beitrag: 16.08.2005, 16:21

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress