Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Pointer überlauf

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
04.09.2006, 17:10 Uhr
xXx
Devil


Hmm nein ich hab schon debugt ... aber da steht da genau so viel müll drin naja ... werds nachher nochmal machen ... sag dann bescheid...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
04.09.2006, 17:41 Uhr
(un)wissender
Niveauwart



Zitat von xXx:

aber da steht da genau so viel müll drin



Dann scheint das ja das Problem zu sein. Sorge dafür, dass du kein Müll bekommst.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
04.09.2006, 19:13 Uhr
xXx
Devil


So nochmal debuggt ... der String stimmt... aber trotzdem wird es falsch ausgeben ... komisch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
04.09.2006, 19:39 Uhr
xXx
Devil


hmm nuja ... ich geb euch mal das wichtige:

C++:
void Font::Draw(int x, int y, const char *const str, const unsigned int format, const unsigned int color, size_t len, unsigned short max_width) const
{ ... }


Ist die Funktion zum zeichnen ... der String auf den der Pointer zeigt stimmt so weit... und wenn ich das ganze mal einfach in nen char array reinschreib stimmt es auch:

C++:
char string[1024];
snprintf(string, 1024, "%s", p);
font->Draw( ...);

Bei direkter Angabe von p nicht...

C++:
char* string = new char[length+1];
snprintf(string, length+1, "%s", p);

Ist zwar schon korrekter aber nicht richtig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
04.09.2006, 19:45 Uhr
0xdeadbeef
Gott
(Operator)


Mal ins Blaue hineingeschossen, ist p auch wirklich terminiert? Ansonsten würde snprintf zwar die Kopie terminieren (wenn auch etwas weiter hinten als gedacht), bei der direkten Übergabe von p liefe die Schleife aber unbestimmt weiter.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
04.09.2006, 19:50 Uhr
xXx
Devil


Hmm ... hab eig. sogar in der Add Funktion den String mit \0 terminiert ... ich hab auch einfach keine ahnung woran es liegen könnte Beim Debuggen zeigt er mir ja auch den richtigen Wert an ... nur zeichnet er was falsches
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
04.09.2006, 19:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von xXx:
Hmm ... hab eig. sogar in der Add Funktion den String mit \0 terminiert ... ich hab auch einfach keine ahnung woran es liegen könnte Beim Debuggen zeigt er mir ja auch den richtigen Wert an ... nur zeichnet er was falsches

du solltest bedenken das die schrift die du verwendest oem-zeichensatz benutzt. d.h wenn du öä oder ähnliches in dem string drin hast, zeichnet er da logischerweise mist.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
04.09.2006, 20:50 Uhr
xXx
Devil


Jop ... deshalb hab ich das aus meinem "Test"-String rausgenommen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
06.09.2006, 15:22 Uhr
xXx
Devil


Keiner mehr ne Idee?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: