Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Wie sieht die Deklaration von CIRC::GetMsg aus?
  2. Das kann schon nicht sein. Du kannst mit MSVC6 keine DOS-Programme erstellen. Vermutlich hast du ein Win32-Konsolenprogramm.
  3. Das ist eine Zuweisung, kein Vergleich. Du setzt hier str_host auf NULL. Dieser Ausdruck wird wiederum immer als false ausgewertet, daher wird der if-Block niemals betreten. In der nachfolgenden Anweisung greifst du dann über einen Nullzeiger auf einen Member zu. Vergleich ist ==.
  4. Nein, nicht nur Literale (also Konstanten im Quellcode) landen als Strings in der ausführbaren Datei. Auch Importsymbole und Debugginginformationen können da stehen. Genau. Das ist es, was ich (schon mehrfach) mit statischer Lebensdauer meinte. Literale sind - solange dein Programm läuft - immer da, du brauchst dich um nichts zu kümmern. Die Frage ist berechtigt. In solchen Fällen sollte die Antwort immer in der Dokumentation der Funktion stehen. Ich zitiere mal aus dem Eintrag in der MSDN Library für inet_ntoa:
  5. In dem Code wird kein Literal geändert. Dein Zeiger ist wie ein Stück Papier, auf dem du mit Bleistift eine Adresse notierst. Wie gesagt, mit Bleistift. Du kannst das jederzeit ausradieren und eine andere Anschrift aufschreiben. Das heißt aber nicht, dass du damit irgendwie das Haus beeinflussen kannst, das an der Adresse steht. Wird irgendein Haus abgerissen, oder zieht jemand um, nur weil du auf deinem Zettel eine andere Adresse aufschreibst? Ob du einen Zeiger an eine andere Stelle zeigen lässt, hat auf den allozierten Speicher überhaupt keinen Einfluss. Es ist da wie mit allen Zeigern. Der Zeiger wird kopiert, nicht das, worauf er zeigt. Ich glaube, es ist das erste mal, dass du überhaupt mit Zeigern arbeitest. Vielleicht solltest du nicht gerade mit char-Zeigern anfangen, weil die nunmal eine Sonderbehandlung bekommen. Nein. Malloc verwendest du, wenn du eine Lebensdauer über den Scope hinweg haben willst oder die Größe eines Arrays erst zur Laufzeit kennst. Ich glaube, dir ist nicht ganz klar, was Literal bedeutet. Ein Literal ist eine Konstante in deinem Quellcode. Es gibt in C Ganzzahl-, Fließkomma-, Zeichen- und Zeichenkettenliterale. Zeichenkettenliterale sind die einzigen, von denen du überhaupt eine Adresse bekommen kannst. Du kannst aber den Inhalt nicht über diese Adresse ändern, ohne undefiniertes Verhalten zu erzeugen. In Ergänzung zu carstenjs Antwort: In deinem Programm gibst du die Adresse der Zeigervariablen aus, nicht die Adresse, auf die der Zeiger zeigt.
  6. test2 ist ein Array mit automatischer Lebensdauer, d.h. das Array wird zerstört, wenn das Programm den Scope verlässt, in dem die Variable definiert ist. Das Literal, das für die Initialisierung benutzt wird, hat statische Lebensdauer - wie alle Stringliterale.
  7. Da hast du nur einen Zeiger auf ein Literal, da gibt es nichts freizugeben.
  8. Stringliterale habens statische Lebensdauer, brauchen also nicht freigegeben zu werden. Die sind da, solange das Programm läuft. Solange dir klar ist, dass testz jetzt auf das Array test zeigt. Kopiert wird da nichts, wenn du testz änderst, änderst du auch test. Immerhin darfst du das. Anzahl der Zeichen im Literal plus eins für das Nullzeichen.
  9. http://msdn.microsoft.com/library/en-us/vccore/html/_core_data_source.3a_.programmatically_configuring_an_odbc_data_source.asp
  10. Wenn du als Übungsaufgabe mit Quicksort sortieren sollst, dann sollst du den Algorithmus vermutlich selbst implementieren. Dann darfst du keine vorgefertigte Funktion benutzen, weder std::sort noch qsort.
  11. Wenn nicht, dann etwas besseres. Neuere Implementierungen benutzen üblicherweise einen Algorithmus, der auch im Worst case O(n log n) hat. Da das eine Templatefunktion ist, kannst du dir den Quellcode ansehen. #include <algorithm> string wort[20]; std::sort(wort, wort+20);[/code]
  12. Muss es denn qsort sein? Warum nicht std::sort? Damit könntest du das das string-Array direkt sortieren.
  13. Da beim Kopieren von Dateien die CPU herzlich wenig zu tun hat, und dieser Prozess sowieso die meiste Zeit mit Warten verbringt, wird dir das nichts nützen. Du musst die Bremse da ansetzen, wo der Flaschenhals ist. Nachtrag: Wie (mit welchem Programm) kopierst du denn?
  14. Stichwort: CSplitterWnd
  15. Nö. Du kannst das auch umstellen: Eigenschaften von Anzeige -> Darstellung -> Effekte -> Unterstrichene Buchstaben für Tastaturnavigation ausblenden.
  16. Wird denn überhaupt irgendein Hotkey unterstrichen? Standardmäßig ist zumindest XP so eingestellt, dass die Unterstriche erst angezeigt werden, wenn man auf die Alt-Taste drückt.
  17. Hallo, ich habe hier MS Virtual PC SP 1 mit deutschem Windows 98 SE. Das Host-OS ist ein deutsches Windows XP Professional SP 2. Das Problem ist, dass ich im Kommandozeileninterpreter (COMMAND.COM) direkt keinen Backslash eingeben kann. Mit Alt-Gr 92 geht es. Bei Notepad geht es ganz normal. Es scheint nicht am Hostkey zu liegen. Ich habe Shift rechts (Vorgabe), Strg rechts und Scroll Lock ausprobiert, keine Änderung. Ich habe keine Informationen über dieses Problem gefunden. Habt ihr davon schon mal gehört? Oder hat vielleicht einer von euch eine ähnliche Konfiguration und kann das mal gegenprüfen?
  18. Ich versteh nur Bahnhof. Wie zeichnet man unbegrenzte Felder? Und wieso "eigentlich"?
  19. Ich fürchte, bevor du dich mit dem "wie" beschäftigst, musst du dir erst über das "was" klar werden. Hast du denn Kartendaten, die du "nur noch" darstellen musst?
  20. Da gibt's viele Möglichkeiten. Leite dir eine eigene Klasse von CWnd ab und du kannst in OnPaint nach Herzenslust malen. Keine Funktion, die MFC haben eine Klasse dafür: CFileDialog. Im Ressourceneditor geht das gar nicht, soweit ich weiß. Das wirst du wohl im Programmcode machen müssen. Hast du die Gruppe mit einer int-Variablen verknüpft?
  21. Klotzkopp

    Speicher freigeben

    Nur, wenn du die auch jeweils mit new erstellst. Was ist ein "Hauptobjekt"? Wenn du die mit new erzeugten Member irgendwie an das "Hauptobjekt" bindest, wirst du vermutlich nicht delete aufrufen müssen.
  22. Ganz einfach. Wenn du z.B. 4 Elemente in einem Array hast, geht der gültige Index von 0 bis 3, nicht bis 4.
  23. Ich bin heute wohl betriebsblind...
  24. Ich wusste das gar nicht. Der Debugger weiß es. Ich weiß nur, wie man den richtig bedient Jedenfalls ist aryCodeList hier als Index falsch. Wenn du in dein CArray nur die selektierten Texte einträgst, kannst du nicht den Listbox-Index benutzen. Der ganze Code der Funktion wäre wohl interessant.
  25. Doppeklick mal auf die dritte Zeile, die mit An der markierten Stelle findet der Zugriff mit ungültigem Index statt. Den Code musst du zeigen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...