【发布时间】:2012-06-15 07:21:43
【问题描述】:
第 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);
}
【问题讨论】:
-
它的字符串数组,和shells_host一样
-
func.h是我们不知道的。因此,无法知道LinkToHost和LinkToReq(假设它们在func中定义)是否正确。你为什么使用strings 的数组?使用vector。按值返回strings。让 RVO 启动。是的,你可能有泄漏,因为我的快速扫描找不到delete [] shells_host;。 -
是的,但是使用vector的时候也是同样的问题! codepaste.ru/10940 -- func.h
-
您是否在调试器中运行过您的应用程序?您是否检查过所有索引是否在您使用的任何数组/向量/集合的范围内?
-
我们不知道
LinkTohost()或LinkToReq()做了什么,但shells_host[i].size()+7确实看起来有点可疑......无论如何,这应该很容易通过单步调试代码来调试.
标签: c++ memory error-handling outofrangeexception