//一个很短的代码,不知道为什么在fclose的地方报错,代码如下:
#include <string.h>
#include <math.h>
#define LINE 1024
#define NAME 1024
#include "time.h"
#include "omp.h"
#include <complex.h>
int res_extend(char *fin, char *fout, int threads)
{
unsigned char cbuf[LINE];
float fbuf[LINE];
float **raw_array,**back_array,**patterson_array;
int i,j;
int n;
FILE *input=NULL,*output=NULL;
srand((unsigned) time(NULL));
//open input output and gain file
printf("Start res_extend|\ninput %s output %s \n",fin,fout);
if ((input=fopen(fin, "r"))==NULL)
{
printf("open file error!!\n");
return 0;
}
//calculate the size of the input and gain file by byte.
int input_length=100;
back_array=(float**)malloc(sizeof(float)*input_length);
for(i=0;i<input_length;i++)
{
back_array[i]=(float*)malloc(sizeof(float)*4);
}
fclose(input);
return 0;
}
int main(int argc, char *argv[])
{
char *raw_name,*out_name;
int threads;
raw_name=(char *)malloc(NAME*sizeof(char));
out_name=(char *)malloc(NAME*sizeof(char));
if(argc!=4)
{
printf("Please input: raw_image out_name threads\n");
return 0;
}
raw_name=argv[1];
out_name=argv[2];
threads=atoi(argv[3]);
// printf("raw_name %s, out_name %s, patterson_name %s\n",raw_name,out_name,patterson_name);
res_extend(raw_name,out_name,threads);
报错如下:
*** Error in `./patterson': corrupted double-linked list: 0x00000000008e7a50 ***
Aborted (core dumped)
如果把
back_array[i]=(float*)malloc(sizeof(float)*4);删除,就什么事情都没有。
不明觉厉!