Pointeraddition ?!?



  • DocJunioR schrieb:

    Möglich ist es schon, aber eben sinnlos.

    Wie? Sag jetzt nicht, indem du die Pointer in int castest, dann addierst du ja die ints.

    Was widerum Sinn ergeben würde, wäre einen Index zu einem Pointer zu addieren.. Wird aber eigentlich auch anderes gelöst..

    Nein, Arrayzugriffe werden genau so gelöst.

    cHillb3rT schrieb:

    Faktisch geht es eben bei mir darum zwei Ergebnisse hintereinander zu stellen und dann dieses Ergebnis in einen genau abgesteckten Speicherbereich einzufügen

    😕 Wie jetzt? Und wo genau musst du da Pointer addieren?



  • Bashar schrieb:

    DocJunioR schrieb:

    Möglich ist es schon, aber eben sinnlos.

    Wie? Sag jetzt nicht, indem du die Pointer in int castest, dann addierst du ja die ints.

    Was widerum Sinn ergeben würde, wäre einen Index zu einem Pointer zu addieren.. Wird aber eigentlich auch anderes gelöst..

    Nein, Arrayzugriffe werden genau so gelöst.

    cHillb3rT schrieb:

    Faktisch geht es eben bei mir darum zwei Ergebnisse hintereinander zu stellen und dann dieses Ergebnis in einen genau abgesteckten Speicherbereich einzufügen

    😕 Wie jetzt? Und wo genau musst du da Pointer addieren?

    zum Ersten : immerhin sind ja Pointer auch nur ints, bzw. long ints 😉
    zum Zweiten : intern ja, aber niemand schreibt Pointer+34*2, sondern einfach Pointer[2] oder so..
    zum Dritten : sei nicht sauer, aber kauf dir mal nen C-Buch 😉



  • <--Edit:
    Das zum ersten ist fast richtig! Es sind 32Bit Zahlen aber das ist nicht gesagt das es immer so ist. btw. unsigned int und unsigned long int ist auf 32-Bit Systemen meistens das gleiche (32-Bit)
    -->

    DocJunioR schrieb:

    zum Dritten : sei nicht sauer, aber kauf dir mal nen C-Buch 😉

    ähmm ich empfehle dir DocJunioR eins zu kaufen.

    Wenn das stimmen sollte was du gesagt hast, können alle ihre C-Bücher neuschreiben.

    Und die Compiler-Hersteller die Compiler so anspassen damit das stimmt *fg*

    MfG



  • DocJunioR schrieb:

    ViLiSSiMo

    DocJunioR schrieb:

    zum Dritten : sei nicht sauer, aber kauf dir mal nen C-Buch 😉

    ähmm ich empfehle dir DocJunioR eins zu kaufen.

    Wenn das stimmen sollte was du gesagt hast, können alle ihre C-Bücher neuschreiben.

    Und die Compiler-Hersteller die Compiler so anspassen damit das stimmt *fg*

    MfG

    ??? Wenn du nun auch noch ein wenig ausgeführt hättest, was du meinst, hätt ich vielleicht drüber nachgedacht..



  • DocJunioR schrieb:

    zum Zweiten : intern ja, aber niemand schreibt Pointer+34*2, sondern einfach Pointer[2] oder so..

    " Pointer + 34 * 2 == Pointer[2] "
    Oder was?
    Wenn du das so meinst solltest du dich echt mal mit nem C-Buch befassen. Oder,was sollte denn das werden ?

    MfG



  • Du kannst zu nem Pointer ohne Probleme nen Wert Hinzuaddieren..
    hmm.. wobei ich grade nicht im Kopf hab, ob Pointer++ nicht sogar zum nächsten Element springt. Ich nutz des halt nicht, sondern gehe immer über die [];



  • DocJunioR schrieb:

    Du kannst zu nem Pointer ohne Probleme nen Wert Hinzuaddieren..
    hmm.. wobei ich grade nicht im Kopf hab, ob Pointer++ nicht sogar zum nächsten Element springt. Ich nutz des halt nicht, sondern gehe immer über die [];

    Vielleicht doch mal ein C-Buch kaufen? 😉

    a[b] ist definiert als *(a+b)



  • jupp - habs auch grade gefunden - ist ja nicht so, dass ich nicht schon nen halbes Regal mit C-Büchern voll hab 😃
    grünau. Insofern sollte ich mein Post oben abändern..
    (pointer + 34*2) wäre gleich pointer[68]
    Kann einem ja mal passieren, wenn man nur noch COBOL und Perl macht.. 🙄



  • DocJunioR schrieb:

    zum Ersten : immerhin sind ja Pointer auch nur ints, bzw. long ints 😉
    zum Zweiten : intern ja, aber niemand schreibt Pointer+34*2, sondern einfach Pointer[2] oder so..
    zum Dritten : sei nicht sauer, aber kauf dir mal nen C-Buch 😉

    1. Pointer sind immer unsigned int und (@eViLiSSiMo) sind nicht generell 32Bit groß. Das hängt vom darunterliegenden Betriebssystem ab. D. h. 16Bit-System => 16Bit Pointer; 32Bit-System => 32Bit Pointer; 64Bit-System => 64Bit Pointer; usw.
    2. Ist eh schon geklärt.
    3. Ich bezweifle, dass Bashar ein C-Buch braucht.



  • AJ schrieb:

    3. Ich bezweifle, dass Bashar ein C-Buch braucht.

    Ich glaube nicht, dass er damit mich gemeint hat. Auch wenn er's so geschrieben hat.



  • Bashar schrieb:

    AJ schrieb:

    3. Ich bezweifle, dass Bashar ein C-Buch braucht.

    Ich glaube nicht, dass er damit mich gemeint hat. Auch wenn er's so geschrieben hat.

    Wahrscheinlich 😉



  • AJ schrieb:

    (@eViLiSSiMo) sind nicht generell 32Bit groß. Das hängt vom darunterliegenden Betriebssystem ab. D. h. 16Bit-System => 16Bit Pointer; 32Bit-System => 32Bit Pointer; 64Bit-System => 64Bit Pointer; usw.

    eViLiSSiMo schrieb:

    Es sind 32Bit Zahlen aber das ist nicht gesagt das es immer so ist.

    Ich habe nicht behauptet das es so wäre.

    🙄



  • eViLiSSiMo schrieb:

    eViLiSSiMo schrieb:

    Es sind 32Bit Zahlen aber das ist nicht gesagt das es immer so ist.

    Ich habe nicht behauptet das es so wäre.

    🙄

    Das hörte sich aber sehr danach an. Dein Zusatz sagte mir schon, dass du es wahrscheinlich weißt, allerdings könnten andere daraus schließen, dass Pointer bzw. Integer generell 32Bit groß sind.


Anmelden zum Antworten