sprintf ersätter %s med en sträng, WND_TITLE, och %d ersätts med ett decimal tal, FPS.GetFPS(). Allt bakas in i char arrayen buffer.
Du kan även använa itoa om du vill, men då får du inte en färdigbakad sträng med text också. sprintf är grymt användbar.
Man måste inte allokera minne på heapen för detta ;)
Och då skadar det aldrig att berätta vad man istället kan göra.
char buffer[100];
Tänk på att strängen inte kan vara längre än 100 tecken nu. Om du inte vill bry dig om antalet tecken, kan du t.ex. använda CString om du använder MFC/ATL.
Tänk på att strängen inte kan vara längre än 100 tecken nu.
Kan en char array bara vara 100 tecken? varför?
/Viktor
Nej. Givetvis kan en char-array vara större än 100 tecken. Men i ditt och Marcus exempel så har ni använt just 100. Skulle ju lika gärna kunna vara 42 eller 10 000 tecken.
Det Marcus menar är att i era exempel så får man se till att inte skriva mer än 100 tecken till arrayen för då börjar man härja runt på minne som inte är allokerat.
Ett tips är att vid sånahär deklarationer använda en #define för att enkelt kunna ändra storleken senare.
Nej. Givetvis kan en char-array vara större än 100 tecken. Men i ditt och Marcus exempel så har ni använt just 100. Skulle ju lika gärna kunna vara 42 eller 10 000 tecken.
ok, blev lite orolig att jag hade missat något grundläggande i C++ :)