(试图获取字符串的内部缓冲区的地址)
std::string s;... = &s[0];
例如当s为空时?
我知道我们有c_str(),data(),但是.
注意
这是来自与某人的辩论,这不是为了促进Hacky编码
解决方法 在C 11中,代码定义明确,但可能无法达到预期效果.确切的影响是,根据21.4.5 / 2:Returns:
*(begin() + pos)
ifpos < size()
,otherwise a reference to an object of typeT
with valuecharT()
; the referenced value shall not be modifIEd.
因此,如果字符串非空,则返回对内部缓冲区start的引用.如果它为空,则返回对值为0的char的引用,其位置为memory是实现细节.
总结以上是内存溢出为你收集整理的c 11 – C字符串的内部缓冲区地址未定义的行为全部内容,希望文章能够帮你解决c 11 – C字符串的内部缓冲区地址未定义的行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)