【发布时间】:2017-02-02 01:06:40
【问题描述】:
谁能告诉我为什么会出现这个段错误?
vector<string> vec;
for (int i = 0; i < 1000000; /* 1 million */ i++) {
vec.push_back("string"+i);
}
在g++ 和-std=c++14 中编译
【问题讨论】:
-
你认为
"string"+i实际上做了什么? -
@πάνταῥεῖ 连接
-
它没有。它应用了奇怪的指针算术。您正在访问超出范围的地址,并且您没有访问权限。
-
@iPherian C++ 与您所知道的其他语言不同。你应该开始here。
-
@KyleStrand:然后是
const数组char。