gtk+ eiger und pointer...



  • Hallo,ich ein anfaenger
    habe irgen wan einmal etwas ueber zeiger und pointer gelsen und habe mir gedacht ich schreibe ein programm mit dem ich ein speicheradresse erzeuge (duch ein variable) und dann mit pointern auf diese speicheradresse verschiedene operation durchfuehre, um die zieladressen der ponter zu aendern. Aber ich habe nun beim kompileiren einige fehler die ich nicht wegbekomme kan mir evlt jemand helfen?

    hier die fehler:
    speicher3.cpp: In function int main()': speicher3.cpp:29: error: cannot convert \int**' to `int*' in assignment
    speicher3.cpp:31: error: invalid conversion from `int' to `int*'
    speicher3.cpp:34: error: wrong type argument to unary minus
    speicher3.cpp:43: error: invalid operands of types `int*' and `int*' to binary `operator+'

    und heir code dazu:

    #include <iostream> 
    
    using namespace std; 
    
    int main (void) 
    { 
      char ende; 
      int X; 
      int * adressX;              //adresse von 'X' 
      int * adressw;              /*adresse von 'X'allerdings w wie 'wert' zu weiterverabritung */             
      int * adressww;             //adresse von 'adressw' 
      int * adress;               
      int * ziehl;              /*mal von dem rechtschreibfehler abgesehen sollte 'ziehl' ermoelgichen den inhalt der neu adresse auszugebne */ 
      int * zaehler1;              //reste von versuchen die incomptibilitaeten zu umgehen.*/ 
      int * zaehler; 
    
      X=10; 
      ende='n';      //schleifeneinleitung fuer 'beenden abfrage'                   
      while (ende !='j')                   
      {     
        adressX = &X;                     /*die duch die variable X erzeuge peicheradresse wir gelsen und an die andren variablen verteilt ,
                                            eben so wie die adresse von ver variablen 'adressx' */ 
        adressw = adressX; 
        adressww = &adressw; 
    
        zaehler = adressww - adressw ;  /*aus beiden speicheradressen wird eine differenz gebildet und absolut gesetzt.*/ 
        if (zaehler<0) 
        { 
          zaehler= (-zaehler); 
        } 
        zaehler= zaehler1;            /*etwas sillos,aber sollte mri die variablen werte erhalten, zur sicherheit...*/ 
        adress = adressw; 
    
        for ( int z=0 ; z=5 ; z++ )       /*schleifeneinleitung fuer 5fache wiederholung der ausgabe.. */ 
        {   
          ziehl = adress;                  /*ausgabe der speicheradresse und des inhaltes */ 
          cout <<  adress << " :" << *ziehl << flush; 
          adress = adress + zaehler; 
        }                                 
    
        while ((ende !='n') || (ende !='j'))   /* abfrage zum beenden des programmes */ 
        { 
          cout << " Beenden ? \"j\" zum beenden dreucken. \"n\" zum fortfahren. :" << endl; 
          cin >> ende; 
        } 
      } 
    }
    


  • weiss zwar nicht was des mit gtk zutun hat aber ok.

    adressww = &adressw;
    

    ersetzt das durch

    adressww = adressw;
    

    du brauchst da kein & operator, weil es sich um ein pointer handelt.

    mfg blan



  • Und wenn du wirklich die Adresse eines int* (adressw) speichern willst, dann tu das bitte in einem int**.


Anmelden zum Antworten