Anzeige:
Ergebnis 1 bis 7 von 7

Thema: iterieren durch buffer

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88

    iterieren durch buffer

    hallo

    hab gerade eine (vorerst für mich) vollkommen komische Deklaration gesehen:

    uint8_t buf[1];

    wer macht ein Array mit nur einem Element? =) Nun, Evt. ist die Deklaration gar nicht so doof, den jeder der sie anschaut denkt, wth hat der sich dabei gedacht.

    Das Ding dient dazu, Byteweise durch einen buffer zu iteriern. Da byteweise für mich auf ein char Array passt, hab ich mich beschlossen, dieses als buffer zu verwenden.

    Nun wollte ich die Anfangsadresse meines Arrays in das buf[0] speichern, so, dass diese in einem Struct immer verfügbar ist.

    Wie aber bringe ich eine Adresse in einen uint8_t ? Macht das überhaupt Sinn? Adressen sind doch immer 4 Byte gross. Das uint8_t buf[1] muss ich leider verwenden.

    Meine Frage: Bringt man die Adresse eines char Arrays irgendwie in den uint8_t?

    greez
    /* -->
    RTFM
    <-- */

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Nein, nicht auf einer 32-Bit Architektur. Wenn ich richtig verstanden habe was du willst (d.h. eigentlich willst du einen uint8_t-Pointer, oder?)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88
    stimmt!!

    Nun überlege ich mir:
    - s is n array mit einem uint8_t element.
    - ... hmm .... array? ... string? .... pointer? ..
    - ... hat das array selber nicht auch eine adresse, in der man gegebenenfalls eine adresse reinspeichern könnte? Dadurch kann ich nicht mehr auf den uint8_t zugreifen, aber den brauche ich so oder so nicht.

    Sollte klappen oder?
    /* -->
    RTFM
    <-- */

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Das Array hat eine Adresse. Ja. Jedes Ding im Speicher hat eine Adresse. Aber eine solche Adresse ist Compile-Time-Constant oder wie man das auch immer sagen soll.
    d.h. das ist eine fixe Zahl zur Kompilierzeit, im Gegensatz zu einem Pointer, der eine Variable ist in der du eine Adresse speichern kannst. (Der Pointer selber btw, hat auch eine Adresse. Die wiederum ist auch konstant.)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88
    ok... wider nichts.
    Nun, dan komme ich nicht um einen pointer pointer rum...
    Ich versuche die Dinger möglichst zu vermeiden, da ich ansonsten jedes mal Zeit verbrate mit der Frage auf welcher Adresse ich momentan arbeite =(
    /* -->
    RTFM
    <-- */

  6. #6
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Naja, das was du willst *ist* ein Pointer. Ob die Deklaration dazu wie ein Pointer aussieht (was geht) oder wie ein Array mit einem Element (arrgh, und geht nicht) ist doch egal, oder?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.12.2005
    Ort
    CH - Zug
    Beiträge
    88
    richtig =)
    thx für die Hilfe
    /* -->
    RTFM
    <-- */

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •