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
-
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…
-
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?
-
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…
-
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.
-
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 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. …
-
OpenLDAP ins eigene programm einkompilieren? Geht das? Wieviel aufwand? Wer kann helfen?
tjp - - Alternativen
BeitragZitat 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
BeitragZitat 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
BeitragZitat 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…
-
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…
-
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 (…
-
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:…
-
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?
-
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…
-
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
BeitragHallo, 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 …