【发布时间】:2017-11-03 22:17:24
【问题描述】:
当我编写这段代码时,一切似乎都很完美
string *s;
s=new string("some_string");
*(s+1) = *s;
但是当我用空白替换“some_string”时,我的程序会引发分段错误。为什么会发生这种情况,有办法解决吗???
s=new string("");
【问题讨论】:
-
你想用
*(s+1) = *s;做什么? -
你为什么使用
new只是为了创建空字符串? -
*(s+1)不是字符串。 -
*(s+1)不存在。s指向单个字符串,因此s + 1处没有字符串。 -
看起来你真正想要的是
std::vector<std::string>。
标签: c++ arrays string pointers initialization