kann mir das jemand erklären?

Diskutiere kann mir das jemand erklären? im C/C++ Forum im Bereich Programmieren unter Linux/Unix; ich hab gerade angefangen in c bisschen mit pointern rumzuspielen. Wollte mit einem pointer den inhalt vom eine anderen beeinflussen! hab ich auch...

  1. #1 aussengelaender, 10.04.2011
    aussengelaender

    aussengelaender Foren As

    Dabei seit:
    18.02.2007
    Beiträge:
    82
    Zustimmungen:
    0
    ich hab gerade angefangen in c bisschen mit pointern rumzuspielen. Wollte mit einem pointer den inhalt vom eine anderen beeinflussen! hab ich auch gemacht bloss meine ausgaben dazu sind einfach irgendwie komisch komisch!

    Code:
    #include <stdlib.h>
    #include <stdio.h>
    
    int main()
    {
    	int *ptr,zahl,*ptr2,zahl2;
    	ptr = &zahl;
    	*ptr = 5;
    	ptr2 = &zahl2;
    	*ptr2 = 666666;	
    	printf("ptr = %d\n",*ptr);
    	printf("adresse von ptr ist %p \n",&ptr);
    	printf("ptr2=%d\n",*ptr2);	
    	printf("adresse von ptr2 ist %p \n",&ptr2);	
    	ptr2+=2;                          //hier erhoehe ich die adresse
    	printf("adresse von ptr2_neu ist %p \n",&ptr2); 
    	printf("ptr2_neu = %d \n",*ptr2);	
    	*ptr2=9999999;	
    	printf("ptr_neu = %d\n",*ptr);
    	printf("adresse von ptr_neu ist %p \n",&ptr);	
    	return 0;
    }
    
    +Ausgaben

    Code:
    bla@debian:/emulator/c$ gcc -o pointer1 pointer.c && ./pointer1 
    ptr = 5
    adresse von ptr ist 0xbfb76860 
    ptr2=666666
    adresse von ptr2 ist 0xbfb76858 
    adresse von ptr2_neu ist 0xbfb76858     //adresse veraendert sich nicht laut ausgabe	
    ptr2_neu = 5                                     //aber inhalt veraendert sich trotzdem
    ptr_neu = 9999999
    adresse von ptr_neu ist 0xbfb76860 
    
     
  2. Gast1

    Gast1 Guest

    Du gibt die Adresse von ptr2 aus, nicht aber die Adresse auf die ptr2 zeigt! :)
    Du musst die & vor ptr2 in den printf - Anweisungen entfernen.
     
  3. #3 aussengelaender, 10.04.2011
    aussengelaender

    aussengelaender Foren As

    Dabei seit:
    18.02.2007
    Beiträge:
    82
    Zustimmungen:
    0
    Ah danke, da war noch ein denkfehler in meiner Vorstellung von pointern, aber so macht das erstmal sinn!
     
  4. Gast1

    Gast1 Guest

    Ein Pointer ist ja auch nur eine Variable die etwas speichert - nämlich Adressen. Und mit &ptr2 wird dir dann halt die Adresse ausgegeben, an der der Pointer liegt - wo dieser also die Adresse von zahl2 abgelegt hat - Quasi die Adresse der Adresse von zahl2 :)
     
Thema:

kann mir das jemand erklären?

Die Seite wird geladen...

kann mir das jemand erklären? - Ähnliche Themen

  1. Kann mir bitte jemand mit den Repos helfen?

    Kann mir bitte jemand mit den Repos helfen?: Hallo Leute Ich habe ein Problem mit den Paketquellen im Debian. Ich habe Debian installiert doch habe keine Paketquellen die mir ermöglichen...
  2. Name der Augen/ Kann mir mal jemand die Tomaten von den Augen nehmen?

    Name der Augen/ Kann mir mal jemand die Tomaten von den Augen nehmen?: Hallo Ich hab ne Frage. Bei den älteren SUSE Versionen sind so lustige (und völlig sinnlose:D ) Programme vorinstalliert, wie zum Beispiel der...
  3. Kann mir jemand sagen, wo der Fehler in der Xorg.conf ist

    Kann mir jemand sagen, wo der Fehler in der Xorg.conf ist: Hallo, hier Poste ich mal meine Xorg.conf und die Log dazu. Ich habe Suse Linux 10.1 und den ATI Treiber (fglrx) Grafikkarte: ATI Radeon...
  4. Problem! Kann mir jemand helfen.

    Problem! Kann mir jemand helfen.: Hi, vielleicht kann mir jemand weiterhelfen... Gibt es einen befehl um die Leerzeile zwischen der Ausgabe und dem Prompt abzuschneiden. z.B.:...
  5. Suche jemand der mir KI tutorials für Visual Basic oder Python besorgen kann!!!!!!!!!

    Suche jemand der mir KI tutorials für Visual Basic oder Python besorgen kann!!!!!!!!!: Ich und mein Freund(Krenn&Freinberger Games) programmieren ein spiel und ich wäre dankbar für jedes tutorial das man mir schikt!!! :help: :help: