לי הפונקציה נראית חסרת תכלית.
הדבר היחיד שהיא עושה זה בסה"כ לקרוא לsprintf ... מיותר. (מעבר לזה שהיא תופסת מקום בזיכרון לאורך כל התוכנית) פשוט תשתמש בsprintf איפה שצריך, ותתעד מה המטרה של הפעולה. דרך נוספת היא פשוט ליצור מחלקה קטנה ופשוטה שמייצגת צבע בצורה הקסדצימלית. בCtor היא אופציונאלית מקבלת ערכי RGB וממירה אותה בהתאם. ואפשר שהמחלקה תציע הסבות לייצוגים שונים של צבע. ואז לא צריך לחשוב על הקצאת מערך, המחרוזת פשוט תהייה data member, והזיכרון שלה ישתחרר עם שחרור האובייקט. (אבל זה גם לא חסכוני מבחינת זיכרון, אם יש הרבה מאוד אובייקטים כאלה. כי לאכסן צבע כמחרוזת קצת יותר טובעני מאשר כמבנה של RGBTRIPLE, שתופס 3 בתים. זה יעיל רק כמשתנה זמני שמתמשים בו במקומות שונים בתוכנית) אבל שוב, תלוי מאוד באופי של התוכנית..
הדבר היחיד שהיא עושה זה בסה"כ לקרוא לsprintf ... מיותר. (מעבר לזה שהיא תופסת מקום בזיכרון לאורך כל התוכנית) פשוט תשתמש בsprintf איפה שצריך, ותתעד מה המטרה של הפעולה. דרך נוספת היא פשוט ליצור מחלקה קטנה ופשוטה שמייצגת צבע בצורה הקסדצימלית. בCtor היא אופציונאלית מקבלת ערכי RGB וממירה אותה בהתאם. ואפשר שהמחלקה תציע הסבות לייצוגים שונים של צבע. ואז לא צריך לחשוב על הקצאת מערך, המחרוזת פשוט תהייה data member, והזיכרון שלה ישתחרר עם שחרור האובייקט. (אבל זה גם לא חסכוני מבחינת זיכרון, אם יש הרבה מאוד אובייקטים כאלה. כי לאכסן צבע כמחרוזת קצת יותר טובעני מאשר כמבנה של RGBTRIPLE, שתופס 3 בתים. זה יעיל רק כמשתנה זמני שמתמשים בו במקומות שונים בתוכנית) אבל שוב, תלוי מאוד באופי של התוכנית..