c 11 – C字符串的内部缓冲区地址未定义的行为
发布时间:2020-12-16 09:57:50 所属栏目:百科 来源:网络整理
导读:在c 11标准下是否存在以下未定义的行为: (试图获取字符串的内部缓冲区的地址) std::string s;... = s[0]; 例如当s为空时? 我知道我们有c_str(),data(),但是. 注意 这是来自与某人的辩论,这不是为了促进hacky编码 解决方法 在C 11中,代码定义明确,但可能无
在c 11标准下是否存在以下未定义的行为:
(试图获取字符串的内部缓冲区的地址) std::string s; ... = &s[0]; 例如当s为空时? 我知道我们有c_str(),data(),但是. 注意 这是来自与某人的辩论,这不是为了促进hacky编码 解决方法
在C 11中,代码定义明确,但可能无法达到预期效果.确切的影响是,根据21.4.5 / 2:
因此,如果字符串非空,则返回对内部缓冲区start的引用.如果它为空,则返回对值为0的char的引用,其位置为memory是实现细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |