Suchergebnisse

Suchergebnisse 1-20 von insgesamt 403.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „ dann verrat mir doch bitte was "operator struct sockaddr *()" ist. danke!“ Ich schaue heute in die ISO Norm. Danach eine Antwort.

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „Dann ist es eben der () operator.“ Nein, denn ein korrekter Code mit dem operator() sieht ungefähr so aus. Quellcode (1 Zeile)

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „Guter Mann, warum codest du ganz was anderes zusammen als im beispiel erwähnt ist?“ Wann fängst Du endlich an zu begreifen, daß das kein gültiger C++ Code ist! Nur weil es der Compiler übersetzt ist es nicht automatisch korrekt! 1. Du fragtest in Deinem original Post explizit in der Überschrift nach operator*. Exakt dessen korrekte Verwendung habe ich Dir erklärt. 2. Wenn es nicht um die korrekte Verwendung von operator* geht, was soll das überhaupt für ein Operator sein? Der…

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Wunderbar, der erste, der es nachvollziehen kann. Ich hatte es auch noch mit Intel icpc und dem PGI pgCC probiert. Keiner akzeptiert Code der Form Quellcode (1 Zeile)

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „ da irrst du dich!“ Defintiv nicht! Denn neuere Compiler übersetzen den Code schon nicht mehr. Daher ein kurzes compilierbares Beispiel für Dich. Quellcode (37 Zeilen) Die Fehlermeldung bei mir Quellcode (2 Zeilen) Wenn dieser Code sich bei Dir übersetzen läßt, was für eine Ausgabe gibt es?

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „Warum? der cast soll ja so aussehen "(blub *)SocketAddr" und nicht "(blub *)*SocketAddr"!?“ Du willst Doch aus dem SocketAddres Objekt, den intern gespeicherten sockaddr* Zeiger geliefert bekommen - richtig? Dazu muß SocketAddres::operator* aufgerufen werden. Aber genau das tust Du nicht! Ein Cast ist an dieser Stelle zu 100% falsch! Was Du machst ist das Bitmuster des SocketAddres Objekts in ein sockaddr* zu casten. Das funktioniert sogar, wenn zufälligerweise in dem SocketA…

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „Zitat von tjp: „Zitat von gritsch: „ ok, dann eben Quellcode (1 Zeile)“ Ohje, ist es so schwer sich den von mir geschrieben Text auch durchzulesen? Was für einen Typ hat der Ausdruck "*address"?“ SocketAdress - und das solls ja auch sein!“ Richtig, und dann kann natürlich die Zeile Programmcode von Dir nicht korrekt sein. Der operator* von "SocketAddr" liefert dann "sockaddr*" zurück. Daher sind zwei "**" notwendig.

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „ ok, dann eben Quellcode (1 Zeile)“ Ohje, ist es so schwer sich den von mir geschrieben Text auch durchzulesen? Was für einen Typ hat der Ausdruck "*address"?

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Zitat von gritsch: „ich kann mir den übergabeparamter nicht aussuchen Quellcode (1 Zeile)“ Das ist keinerlei Grund einen an dieser Stelle einen überflüssigen sowie auch falschen Cast zu verwenden! Denn "*address" liefert Dir ein Objekt vom Typ SocketAddress zurück. Du haust jetzt mit dem Vorschlaghammer drauf "(struct sockaddr*)", um daraus ein Zeiger auf sockaddr zu machen. Wenn es funktioniert ist das reiner Zufall und undefined behavior. P.S. Ich habe es ja schon mit Zeiger ausgeführt.

  • Ich versteh den operator *() in C++ nicht!

    tjp - - Alternativen

    Beitrag

    Ich nehme an, daß Du den operator* in der Rolle als Derefezenzierungoperator meinst, und nicht als Multiplikationsoperator. Zitat von gritsch: „Ich tschecks einfach nicht... die frage steht im code! Quellcode (6 Zeilen) “ Der Dereferenzierungsoperator liefert in C++ das Objekt zurück, wenn man in auf einen Zeiger anwendet. D.h. es ist sinnvoll den operator* innerhalb einer Klasse so zu verwenden, daß er sich an diese Konvention hält. Bei Dir liefert er einen Zeiger zurück - naja. Auch das geht. …

  • Zitat von gritsch: „das OpenLDAP welches in 10.4 und 10.5 enthalten ist, behinhaltet leider keine page-funktionen (erst die version in 10.6). daher gibt es wohl keine andere lösung als OpenLDAP direkt ins programm mit einzucompilieren - oder? hat das schon mal jemand gemacht oder tips dazu? besten dank und schöne grüße Gabriel“ Ok, zur Einleitung auch bei mir ist es einige Jahre her, daß ich mit LDAP und im besonderen mit OpenLDAP gearbeitet habe. OpenLDAP ist ein Client-Server-Applikation. Man …

  • Int aus 4 Bytes "zusammensetzen"

    tjp - - Alternativen

    Beitrag

    Zitat von zerm: „Hab das jetzt noch nicht explizit in den Specs finden können, nur dass ein char garantiert nur CHAR_BIT viele Bits enthält und ein unsigned char Werte bis maximal 2^CHAR_BIT-1 annehmen kann. Anders ausgedrückt bedeutet dies, dass ein char niemals padding-bytes enthält. Jedoch ist, wie ja allgemeint bekannt, die länge von char und int nicht vorgeschrieben sondern implementationsbedingt. Von daher wäre es, meinem Verständnis nach, durchaus möglich einen char-typ mit 9bits und eine…

  • Int aus 4 Bytes "zusammensetzen"

    tjp - - Alternativen

    Beitrag

    Zitat von Amin Negm-Awad: „Ist garantiert, dass Komponenten einer Struktur, Elemente eines Arrays gepackt sind? Ist es verboten, dass jeder Eintrag im Array, jede Komponente in der Struktur ein Maschenwort belegt?“ Ja, Arrays sind immer gepackt und lassen sich immer auf char* casten. Umgekehrt geht das wegen des Aligments nicht unbedingt. Unions und Structs können größer sein, als die Größe ihrer Komponenten. Arrays davon sind immer dicht gepackt, d.h. zwischen den Unions oder Arrays liegen kein…

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von longW: „Du meinst wir beide waren nicht artig und deswegen müssen wir nachsitzen, oder wie soll ich das verstehen? “ Nein, es ist nur so, daß ihr beiden dieses Problem nicht seht. Über die Gründe kann ich nur spekulieren. Sehr wahrscheinlich ist es, daß ihr beide (und viele andere die hier nicht explizit benannt sind) einfach noch nie so große Projekte hattet, daß es notwendig war, Libraries aus verschiedenen Quellen zu kombinieren. Wenn man Libraries von verschiedenen Quellen nutzt, k…

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von longW: „Ich verstehe, warum Du Fragen nicht beantworten kannst.“ Wenn Du so offen bist, über die Gründe etwas erfahren zu wollen, dann tipp einfach mal "why namespaces" in die Websuchemaschine Deiner Präferenz ein. Ausreichend Links finden sich zu diesem Thema. Falls Literaturempfehlungen genehm sind: "Programming in the Large", Chapter 20, Software Engineering with Ada, 3rd Ed., Grady Booch Large-Scale C++ Software Design, John Lakos Objektorientierte Analyse und Design, Grady Booch (…

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von Amin Negm-Awad: „Stimmt, könnte sein. Deshalb hört man auch hin und wieder Fragen von Leuten, die das suchen. Erstaunlicherweise sind das aber Leute, die gerade erst angefangen haben mit Objective-C. Das kann natürlich ein Zufall sein … “ Brauchst mal wieder Nachhilfe in Logik!? Natürlich weiß ein jeder der die Sprache kennt, daß sie keine Namensräume hat, daher wird er auch nicht mehr danach fragen. Also mal wieder ein Nullargument von dir - wie es nicht anders zu erwarten war. Zitat:…

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von longW: „Und? Hat sich damals jemand über den fehlenden Namensraum beschwert?“ Ich finde es immer wieder erbauend, daß es Menschen gibt, die von ihren eigenen Ansprüchen darauf schließen, daß niemand darüber hinausgehende Anforderungen haben könnte. Halten wir fest, daß Du und Lucas bisher nicht die Notwendigkeit eines solchen Sprachfeatures gesehen habt. Allerdings ist auch zu verzeichnen, daß so ziemlich jede moderne Programmiersprache dieses Features besitzt. Warum ist das wohl so?

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von longW: „Es gab doch immer nur den einen Browser, wie Du Dich sicherlich erinnerst. “ Netscape hatte eine ganze Reihe von kommerziellen Produkten (Directory-Server, Webserver, ...) angeboten, desweiteren freie Frameworks für das Enterprise Computing. Unter anderem gab es von denen eine LDAP-Client Library, damit man leicht LDAP in den eigenen Applikationen verwenden konnte. OpenLDAP entstand erst später. Mittlerweile sind die ehemaligen Netscape Produkte über den Umweg SUN bei Oracle ge…

  • Cocoa/Obj-C vs andere Sprachen/Frameworks

    tjp - - Smalltalk

    Beitrag

    Zitat von Lucas de Vil: „Übrigens: kennst du die Kurzzeichen, für die der Mechanismus da wäre? NS (namespace: NextStep) UI (namespace: UserInterface) CG (namespace: CoreGraphics) CA (namespace: CoreAnimation) CF (namespace: CoreFoundation) “ Irgend wie verstehst Du das Grundproblem nicht. Ein ganz einfaches Beispiel für Dich, daß Du hoffentlich nachvollziehen kannst. Es gab mal eine Firma Netscape, die benutze für die eigenen Frameworks ebenfalls NS als Qualifizierung. Und so abwegig war/ist der…

  • Problem mit scanf

    tjp - - macOS, OS X, Mac OS, Darwin

    Beitrag

    Hallo, Du scheinst irgend wie das Konzept des formatierten Einlesens nicht zu verstehen.Zitat von wareox: „Hm, ich glaube ihr versteht mich falsch “ Das Einlesen via scanf erfordert, daß man in einem Formatstring der Funktion mitteilt was man einzulesen gedenkt. Wenn man Strings einlesen will, sollte man unbedingt die Größe des Puffers angeben, weil andernfalls scanf radikal Daten außerhalb des Puffers überschreibt, wenn die Eingabe länger ist. -> Exploit Leider wird dieser Punkt so gut wie nie …