第 25-30 行有问题。我请求了现有索引,但出现错误。我不明白这个问题,怎么了?
string *shells_host = new string[cnt];
for(int i=0;i<cnt;i++)
{
shells_host[i] = LinkToHost(shells[i]);
shells[i] = LinkToReq(shells[i],shells_host[i].size()+7);
}
第 25-30 行有问题。我请求了现有索引,但出现错误。我不明白这个问题,怎么了?
string *shells_host = new string[cnt];
for(int i=0;i<cnt;i++)
{
shells_host[i] = LinkToHost(shells[i]);
shells[i] = LinkToReq(shells[i],shells_host[i].size()+7);
}
您将一个空字符串传递给 LinkToHost() 并且对 url.substr(7) 的调用会导致异常。
不用说,在调试器下运行代码需要几分钟才能弄清楚这一点。
要么使用调试器深入研究,要么分解问题并添加一些调试打印语句:
for(int i=0;i<cnt;i++)
{
printf("i=%d, shells=%d", i, shells[i]);
shells_host[i] = LinkToHost(shells[i]);
int secondArg = shells_host[i].size()+7;
printf("shells_host=%d, secondArg", shells_host[i], secondArg);
shells[i] = LinkToReq(shells[i], secondArg);
}//to here