的这是一个耻辱,我无法弄清楚这些基本的东西对C++的,但C风格的字符串作为我不会期望。例如,我创造这样的: char* cstr = new char[1];
单个字符C风格串满垃圾
它初始化为:Íýýýýý««««««««它。正常情况下,我可以设置第一个字符,因为其他字符不是真正存在的(或者我认为它们不是)。在工作时使用白色c风格的字符串,所有这些垃圾都可以使用,并且一切正常。
现在我是混合性的std :: string白衣的C-stlye一个和我所得到的是一个烂摊子。惠特此代码:
std::string str = "aaa";
str += cstr;
我结束了白衣:aaaÍýýýýý««««««««它,但现在这些字符实际存在的string.size()返回长度,包括这个垃圾。
我找不到为什么会发生这种情况,但它必须连接whit字符串创建,因为类似char * cstr =“aaa”会导致aaa没有任何额外的垃圾,但尝试更改字符串初始化这种方式结果在内存访问冲突。有人能解释我这种行为吗?谢谢!
PS:我的JavaScript无法加载,所以如果有人能正确地格式化这个职位,我会很高兴!
答:哦,上帝!我怎么能忘记这一点......感谢所有人,好吧,立即回答。最好的一个来自minitech,所以我将这个标记作为答案,只要我的Java脚本加载:/