wird zeiger überhaupt richtig gesetzt ??



  • Hallo! Ich hab immer noch ein Problem mit meinem Programm für Bildverarbeitung: zB kommt statt Gaussfilterung eine neunfach-Überlagerung von versetztem Bildinhalt heraus (+- 1/3 Bildhöhe bzw Breite).
    Jetzt arbeite ich schon direkt mit Zeiger-Arithmetik und rechne zB die Adresse auf die ich im Array zugreifen will direkt aus xy um, um herauszufinden wo der Fehler liegt.
    Dazu sehe ich mir im debug-modus auch die Adressen selber an. Und hab hier entweder DEN Fehler gefunden oder der Zeiger wird nicht richtig umgerechnet??
    Ich zeige mit **ad auf *zeiger und mach eine explizite Konvertierung der hex-Adresse von hex in unsigned int. Aber ist das so richtig?? Entweder es ist richtig und der Zeiger zeigt immer auf die Startadresse von Value oder die Umrechnung hex zu uint und dann Anzahl doubles = Anzahl bytes /8 funktioniert so nicht..
    Warum könnte der Zeiger, statt auf ein bestimmtes Element im Array zu zeigen IMMER nur auf die Startadresse des Arrays zeigen ??? Kapier ich nicht.

    (falls schon was zu sowas existiert.. sorry konnte zu meinem Problem nix finden.)

    double *startad;
    double *zeiger;
    double **ad;
    unsigned int adresse;
    int index;
    double* Value;
    ////////////////////////////////////////////////////////////////////////// 
    uiHeight = Hoehe; 
    uiWidth = Breite;
    Value = new double[uiWidth * uiHeight]; 
    startad = Value;
    zeiger = startad;
    ad=&zeiger;
    adresse = (unsigned int) *ad;
    adresse /= 8;
    /////////////////////////////////////////////////////////////////////////
    void setv(int x, int y, double v)
    		{
    			index = x*uiHeight+y;
    			zeiger = startad+1*indextest;
    			//zeiger = &Valvec[indextest];
    			ad=&zeiger;
    			adresse = (unsigned int) *ad;
    			adresse /= 8;
    			(*zeiger)=v;
    			//Valvec[indextest]=v;
    		}
    


  • Hi. Hab den Fehler beim zeigerberechnen gefunden. Fehlte ein *...
    Die zeiger werden wohl doch richtig berechnet.
    TROTZDEM hab ich neunfachbilder statt einem rauschgefiltertem Bild..


Log in to reply