更新:我被调试器的最新错误日志误导了。我必须手动禁用部分代码才能找到错误生成行。
您能不能给我一个建议,以下部分代码会导致(有时)堆损坏?
我在Windows上使用Qt,这种问题对我来说并不简单,因为没有Valgrind for Windows。
我在某些文本文件中有数值。它们是由白色字符分隔的3-4位整数(一个文件中最多250个)。在“调试”模式下,当我使用12个文本文件时,这在某些方面完美无瑕。我用一些更大的文本文件扩大了我的数据库,现在它更频繁崩溃。在“释放”模式下,应用程序大部分时间以代码-1073741819退出。
也许这种做法根本不合适?如果是这样,有哪些替代方案?
filesTable[0].open(some_directory);
...
//other files...
...
for(int i=0;i<number_of_files;i++)
{
vector<string> data_vector;
string number;
files[i] >> number;
while(files[i])
{
if (number.size() > 0)
data_vector.push_back(number);
files[i] >> number;
}
files[i].close();
int size = data_vector.size();
int point[size];
for(int j=0; j<size;j++)
point[j]=atof(data_vector[j].c_str());
data_vector.clear();
}