struct: speicheraddr anzeigen lassen



  • Hallo,

    ich hab ein typedef struct

    typedef struct {
         unsigned int   Addr;                                                                    
         unsigned int   zahl;                                                                        
    } *ptr_struct;
    
    ptr_struct pBD = (ptr_struct)0x1000000;
    

    Innerhalb einer For-Schleife initialisiere ich ein paar structs

    for(i=0; i< 10; i++)
    	{
    		p_pBD [i].Addr = (unsigned int)newAddr;
    		pBD[i].zahl = i;
    		newAddr +=Addr_size; 
    	}
    

    Ist es besser den Speicherplatz dafür schon vorher zu reservieren? Bzw. wie könnte ich dies machen?

    Wie kann ich mir jetzt anzeigen lassen, auf welche Speicherstelle genau pBD[5].zahl zeigt?

    printf("pBD: 0x%08x\n", pBD[i].zahl);
    

    zeigt mir nur den Inhalt in zahl aber nicht deren speicheraddresse an, oder?

    Bernhard



  • Hallo,

    Bernharder schrieb:

    Wie kann ich mir jetzt anzeigen lassen, auf welche Speicherstelle genau pBD[5].zahl zeigt?

    pBD[5].zahl
    

    zeigt nicht auf eine Adresse, sondern ist ein
    Wert, der an einer Speicherstelle gespeichert ist.

    Ich nehme mal an, du möchtest wissen, wo dieser Wert gespeichert wird.

    Mit

    &pBD[5].zahl
    

    bekommst du die Adresse.

    printf("pBD: 0x%08x\n", &pBD[5].zahl);
    

    Gruß mcr



  • Bernharder schrieb:

    Ist es besser den Speicherplatz dafür schon vorher zu reservieren? Bzw. wie könnte ich dies machen?

    Wenn du weißt, wie viele Elemente du definieren willst, kannst du es im voraus machen, ansonsten kannst du dynamisch mit malloc() und realloc() arbeiten.

    Zeh Mau


Anmelden zum Antworten