1
我有这样的代码:_ttoi胜C++断言失败
BOOLEAN Recurse = FALSE;
DWORD NumPasses = 1;
int _tmain(int argc, TCHAR *argv[])
{
BOOL foundFileArg = FALSE;
int i;
if(argc < 2) {
return Usage(argv[0]);
}
for(i = 1; i < argc; i++) {
if(!_tcsicmp(argv[i], TEXT("/s")) ||
!_tcsicmp(argv[i], TEXT("-s"))) {
Recurse = TRUE;
} else if(!_tcsicmp(argv[i], TEXT("/p")) ||
!_tcsicmp(argv[i], TEXT("-p"))) {
// assertion failure
NumPasses = argc > i ? _ttoi(argv[i+1]) : 1;
if(!NumPasses) return Usage(argv[0]);
i++;
} else {
if(foundFileArg) return Usage(argv[0]);
foundFileArg = TRUE;
}
}
return 0;
}
我得到断言失败, 请建议,其中的问题可能是,在哪里看。是不是有些问题_ttoi功能,当它失败我使用, 如果我要分配一个缓冲区, 我怎样才能解决这个问题
感谢
你不能这样做 “的argv [I + 1]”。您正在遍历所有命令行提供的参数以及您尝试访问最后一个过去的表达式的表达式。 – imreal
他有三个操作员来处理。但它应该是argc> i + 1而不是argc> i –