c语言,fclose()带来的内存错误(求解)

来源:互联网 发布:淘宝澳洲站 编辑:程序博客网 时间:2024/05/23 00:00

//一个很短的代码,不知道为什么在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);删除,就什么事情都没有。
不明觉厉!

0 0