I am currently working on the C code below. I need to access the array outside the `while` loop, after `fclose`. It appears that the **blackfin ADSP** kernel crashes every time I run it. I will need it further to perform FFT. Please help!

```
#include <stdlib.h>
#include <stdio.h>
#include <flt2fr.h>
#include <fract_math.h>
#include <math_bf.h>
#include <complex.h>
#include <filter.h>

int main() 
{
    int n = 1024;
    long int dat1[n];
    FILE *file1;
    fract16 *m;
    int i;

    // file1 open and read the values
    file1 = fopen("0.dat", "r");
    if (file1 == NULL) {
       printf("I couldn't open 0.dat for reading.\n");
       exit(0);
    }

    while (!feof(file1)) {
        fgets(dat1, n, file1);
        m = malloc(sizeof(fract16) * n);
        for (i = 0; i < n; i++) {
            sscanf(dat1, "%f", &m[i]); //getting error here
        }
    }

    fclose(file1);
    printf("%lf\n", m);
    return 0;
}

```

Alright, thank you all for correcting my mistakes, but the problem is still unresolved. I am able to print all of the values inside, but outside the loop it prints just the last value of the data set, is there any precise solution for this? I googled for hours but no success yet.
The code is as follows >

```
#include <stdlib.h>
#include <stdio.h>
#include <flt2fr.h>
#include<fract_math.h>
#include <math_bf.h>
#include <complex.h>
#include <filter.h>
int main()
{
    int n = 1024;
    long int dat1[n];
    FILE *file1;
    fract16 *m;

    file1 = fopen("0.dat", "r");
      if (file1 == NULL) {
         printf("I couldn't open 0.dat for reading.\n");
         exit(0);
      }

    while( !feof(file1))
    {

       fgets(dat1,n,file1);
       sscanf(dat1, "%f", &m);
       printf("%f\n",m); //Prints all elements in the 1st column of the  array, 0.dat is a nx2 matrix
    }
    fclose(file1);
}

```