Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Pointer-Fragen...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
29.04.2004, 09:55 Uhr
~Unwissende
Gast


Hallo,
hab da gerade ein Programm vor mir liegen, mit einigen Pointern und so langsam verliere ich glaube, die Übersicht

Also, bruchstückweise hier der Code:


C++:
UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp)
{
    UINT8        ret_rc;
    UINT32    *v_p;

    if((rc = *v_p) != 0)
    {
       sprintf(c_textpegel, "Clear Offs = 0x%x, read 0x%.08x - expected 0\n",
    i*4, *v_p);
       if(fp) fprintf(fp, c_textpegel);
       while(*c_textpegel++ != '\0');
       c_textpegel--;
    ....
    }
}



Also, "adr" ist ein Pointer auf eine Zahl(genauer gesagt ist diese Zahl eine Adresse auf der Hardware). Die Variable adr enthält dann doch nur die Adresse als Verweis auf eben DIE Zahl, oder?
Was passiert dann bei der Zuweisung:

C++:
rc = *v_p


???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.04.2004, 09:57 Uhr
~Unwissende
Gast


Oh Mist, ich sehe gerade, der code ist noch nicht ganz ausreichend:
Also, es muss SO heißen:

C++:
UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp)
{
    UINT8        ret_rc;
    UINT32    *v_p;

    v_p = adr;

    if((rc = *v_p) != 0)
    {
       sprintf(c_textpegel, "Clear Offs = 0x%x, read 0x%.08x - expected 0\n",
    i*4, *v_p);
       if(fp) fprintf(fp, c_textpegel);
       while(*c_textpegel++ != '\0');
       c_textpegel--;
    ....
    }
}



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.04.2004, 10:01 Uhr
virtual
Sexiest Bit alive
(Operator)


v_p ist ein Zeiger. *v_p dereferenziert den Zeiger, was soviel heißt wie nachschauen, was da steht, wohin der Zeiger zeigt. *v_p ist damit der Wert des ersten UINT32, auf das v_p zeigt
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.04.2004, 10:04 Uhr
~Unwissende
Gast


Oh Mist, ich sehe gerade, der code ist noch nicht ganz ausreichend:
Also, es muss SO heißen:

C++:
UINT8 RAM_test(UINT32 *adr, UINT32 rng, FILE *fp)
{
    UINT8        ret_rc;
    UINT32    *v_p;

    v_p = adr;

    if((rc = *v_p) != 0)
    {
       sprintf(c_textpegel, "Clear Offs = 0x%x, read 0x%.08x - expected 0\n",
    i*4, *v_p);
       if(fp) fprintf(fp, c_textpegel);
       while(*c_textpegel++ != '\0');
       c_textpegel--;
    ....
    }
}



 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.04.2004, 10:46 Uhr
(un)wissender
Niveauwart


Oh, es gibt eine weibliche Form von mir, na ja, soviel unwissenheit kann auch nicht auf einem Menschen vereinigt werden.
War das jetzt am Thema vorbei?

--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 29.04.2004 um 10:47 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.04.2004, 11:54 Uhr
~Unwissende
Gast


Mhmmm, ja, und je mehr Files ich mir von dem Programm anschaue, desto unwissender komme ich mir vor...



Wieso wurden Pointer überhaupt erfunden? Und wieso ziehen sich die Spuren der Pointer bis jetzt über 7 Dateien und xFunktionen??? *wahhh*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.04.2004, 12:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie willst du denn z.b. ein array ohne pointer realisieren?

int x1,x2,x3,x4,x5,.............x213456;
na da wünsch ich ja mal gleich viel spass beim initialisieren der variablen (vom verwenden mal abgesehen)

hätte man keine pointer müsste man wenn man ner funktion was übergibt auch immer das ganze objekt kopiert werden (wenn das schon 100Mb gross ist, dann guten tach, mal von performance abgesehen kannst du froh sein wenn das der rechner noch ein paarmal mitmacht)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
29.04.2004, 12:16 Uhr
Pablo
Supertux
(Operator)


Pointers sind ne feine Sache. Das beste an den Pointers ist, dass du bit-nah arbeiten kannst, d.h. du kannst auf bits zugreifen, die du mit anderen Sprachen wie VB nicht ermöglichen.

Außerdem kannst du mit Pointers mehrer Werte gleichzeigtig zurückgeben bei Verlassen einer Funktion, ohne eine Klasse, struct oder union deklarieren zu müssen. Bsp:


C++:
int x(int* a, int *b) {
    int res=*a*(*b)-(*a+*b);
    *a=0;
    *b=0;
}

void foo()
{
    int p=9, q=2;
    int y=x(&p, &q);
}



int x(int*,int*) multipliziert p und q und wiest p und q 0 zu. Das heißt, diese Funktion liefert 3 Werte rurück ohne ein struct definieren zu müssen.

x darf auf den Speicherplatz von p und q zugreigfen und ihn ändern. Das kann unter Umständen sehr nützlic sein.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.04.2004, 12:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Wie greift man denn mit Pointern auf Bits zu?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.04.2004, 12:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Wie greift man denn mit Pointern auf Bits zu?


*lol* manchmal kannst du ein richtiger ar*** sein virtual.
ist dann immer sehr erfrischend trocken
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: