Почему я получаю эту ошибку доступа к памяти «двойное освобождение или повреждение»?

Я получаю следующий тип ошибки. Я знаю, что это как-то связано с тем, что я неправильно обращаюсь к памяти, но я нет точно как. Пожалуйста, помогите мне увидеть, где я ошибся.

* примечание: я упростил свою функцию, и неясно, что делают переменные, мне просто нужно знать, как я неправильно реализую функцию или где я неправильно использую доступ к памяти.

int my_function(char const *file_name, size_t max)
        {

        myStruct.pStore = fopen(file_name,"w+");      //pStore is a FILE* 
        myStruct.max = max;                 

        // fill the with zeros ('0')
        int numberOfZeros = max*SIZE;
        char zeros[numberOfZeros];                      

        int i=0;
        while(i

Ответы на вопрос(2)

Ваш ответ на вопрос