我正在为两个文件夹的内容生成哈希值。然后我想比较所有哈希值,一次一个文件夹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个小时之后我就不知道我哪里出错了。
答案 0 :(得分:1)
当您没有内存或尝试分配无效大小时,会引发std :: bad_alloc异常。 检查代码完成内存分配的代码,如果找不到,请向我们展示。