Не получается записать данные в файл СИ

Есть программа для библиотеки. В ней мы вводим к примеру две структуры данных книг. Потом я пытаюсь записать его. Ошибку саму отлавливает компилятор. Нужно записать данные в файл. Могу дать полный исходник программы, если надо, но поидеи, все было хорошо до появления строк кода, что приведены ниже. Также скрин ошибки Ошибка

massive = это массив структур

dimension = количество этих структур.

void initzapis(Kniga* massive, int dimension)
{

    int vubor = 0;
    FILE* data;
    do {
                printf("Выберите режим работы с библиотекой:\n1.Запись новых файлов библиотеки;\n2.Дозапись и чтение существующей библиотеки;\nВаш выбор: ");
                scanf_s("%d", &vubor);
                if (vubor == 1 || vubor == 2)
                    break;
            } while (1);
    if (vubor == 1)
        fopen_s(&data, "data3.txt", "w");//создание нового файла и запись в него
    else fopen_s(&data, "data.txt", "ab");//дозапись и чтение
    if (!data)
    {
        puts("Failed to open file \n");
        exit(1);
    }

    for (int i = 0; i < dimension; i++)
        zapis(massive[i], &data);
}


void zapis(Kniga kniga, FILE* data)
{

    fprintf(data, "%s\n%s\n%d %s;\n%f %f.\n", kniga.nazva, kniga.autor, kniga.god, kniga.vidavniztvo, kniga.sobivartist, kniga.cina);
}

Ответы (0 шт):