最佳化已關閉 /Od
string 物件配上 sprintf (), 要正確的顯示 'abc' :
Debug ' Release 模式下, 皆可以這麼寫:
string s("abc");
printf("%s", s.data());
但在 Release 模式下除了上述寫法, 亦可這麼寫 :
(Debug 模式下這麼寫出來的結果一定是錯的)
string s("abc");
printf("%s", &s);
我發現原因在於 Debug 模式下, s 多了紅框的東西 , 接著才是 'abc'

所以在 Debug 模式下我必須寫成這樣 :
string s("abc");
printf( "%s", (size_t *)(&s)+1 );
而 Release 模式下, s 就直接是 'abc' :
有人知道為什麼嗎 ? 謝謝
感恩