最后调试程序的时候,已经能跑出正确结果,但是还是报这个错记录:invalid next size (normal)问题的解决后来参考了这个网站:https://blog.csdn.net/mociml/article/details/6286311
得知是内存泄露的问题。
情况有这三种:
(1)free了没有分配的内存

(2)还有就是分配了内存忘记释放也有可能会出现这样的问题。

(3)最后查出来是数组循环的时候越界了 , 写到了其他的内存里面, 然后一free那个区域就出现了这样的问题。

由于1.2都没问题,所以猜测是(3)中,循环使用小数组的时候它将数据写到了别的内存中。

0 100
1
40W

由于并不像开辟40W×100这么大空间的数组,我原本是开辟了1个长度为100的数组作为临时变量,就出现了这个问题。
后面直接改为开辟这么大空间,然后每次读取并计算一些数据就解决了这个问题。

inp_data->query=malloc(Data_line_num*150*sizeof(uint8_t));
for(int i=0;i<40W;i++)
{
fread(&inp_data->query[i*150],sizeof(uint8_t),inp_data->qlen[i],query_data_fp);
&inp_data->query[i*150];
fuc(&inp_data->query[i*150]);
}

相关文章:

  • 2021-12-01
  • 2021-07-05
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2021-10-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-16
  • 2021-06-13
  • 2021-06-08
  • 2021-07-09
相关资源
相似解决方案