我正在为两个文件夹的内容生成散列。然后,我想将文件夹a的所有散列与文件夹b的所有内容逐个进行比较。
如果每个文件夹中都有相同的文件,则可以正常工作,但我计划在文件夹B中放置大约500个文件,在文件夹A中放置5-10个文件。
for (i=0;i<nbfiles1;i++)
{
printf("file1: %s\n", files1[i]);
for (j=0;j<nbfiles2;j++)
{
printf(" file2: %s\n", files2[j]);
cs=ph_audio_distance_ber(hashes[i],lens[i],hashes2[j],lens2[j],threshold,block_size,Nc);
double max_f = 0.0;
for (index=0;index<Nc;index++)
{
if (cs[index] > max_f)
max_f = cs[index];
}//end if
printf(" cs = %f\n", max_f);
}//end for
}//end for其中nbfiles1是文件夹A中的文件数,nbfiles 2是文件夹B中的文件数
如果每个循环中的文件数量相等,则循环工作得很好,但如果文件数量不相等,则循环会崩溃。我知道答案就在眼前,但是看了3个小时后,我还没有意识到我哪里错了。
发布于 2011-04-02 00:34:56
当你没有足够的内存,或者试图分配一个无效的大小时,就会引发一个std::bad_alloc异常。检查您的代码中内存分配的位置,如果找不到,请向我们展示更多。
https://stackoverflow.com/questions/5515073
复制相似问题