这一定很简单,但我现在 NumPy 了,无法清楚地思考。 所以这是我代码的一小部分,除此之外一切正常。 我真正想做的是 infile1.open(temp2->path);但这是不可能的,因为 temp2 是一个字符串。所以我想把这个字符串放入一个像 char p[100] 这样的 char 数组中以使用 infile1.open(p)。它编译但在几秒钟后繁荣: p 周围的堆栈已损坏
char p[100];
while( temp2 != 0)
{
stringToCharArray(temp2->path, p);
infile1.open(p);
checkingWords(infile1, stopWords, invertedIndex);
infile1.close();
temp2 = temp2->next;
}
void stringToCharArray(string s, char *c)
{
int i;
int size = s.size();
for( i=0; i<=size ; i++)
{
c[i] = s[i];
}
}
最佳答案
我相信你想要 std::string::c_str
.
infile1.open(temp2->path.c_str());
(请注意,此 const char *
仅在您下次更改您从中获取的 std::string
中的内容时有效,在本例中为 temp2->path
)。
看起来您现有代码的主要错误是 for( i=0; i<=size ; i++)
应该是 i<size
.但我们不要太详细地讨论它,因为无论如何你都不应该这样做。
关于c++ - p 周围的堆栈已损坏 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16064725/