亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C ++ 11中,std :: string總是以null結尾嗎?

在C ++ 11中,std :: string總是以null結尾嗎?

C++
吃雞游戲 2019-08-19 17:02:24
在C ++ 11中,std :: string總是以null結尾嗎?在他的網站2008年的一篇文章中,Herb Sutter聲明如下:由于與并發相關的原因,有一個積極的建議是在C ++ 0x中進一步加強這一點并且需要空終止并且可能禁止寫時復制實現。以下是該文件:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html。我認為本文中的一個或兩個提案很可能會被采納,但我們會在下一個或兩個會議上看到。我知道C ++ 11現在保證std :: string內容連續存儲,但他們是否在最終草案中采用了上述內容?現在使用類似的東西會安全&str[0]嗎?
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

是。根據C ++ 0x FDIS 21.4.7.1/1,std::basic_string::c_str()必須返回

一個指針p,p + i == &operator[](i)每個iin [0,size()]

這意味著給定一個字符串s,返回的指針s.c_str()必須與string(&s[0])中的初始字符的地址相同。


查看完整回答
反對 回復 2019-08-19
  • 1 回答
  • 0 關注
  • 522 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號