Код не работает в 2008 версии visual studio, но работает в 2005 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день. Писала на университетском компьютере программу, считывающую данные из файла в список структур. Там стоит 2005 версия, и всё работало нормально. При перенесении кода в 2008 vs выдает ошибку Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted при запуске. Компилятор не ругается.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Film
{
        char Name[50];
        int Year;
        char Genre[30];
        Film*next; 
};
Film*createList(FILE*F, Film*tail)  
{
        char str[50];
        while(fgets(str,sizeof(str)-1,F)!=NULL)     
        {
                Film*obj= new Film;
                tail->next = obj;
                str[strlen(str)-1]='\0';
                strcpy(obj->Name,str);
                fscanf(F,"%d",&obj->Year);
                fgetc(F);
                fgets(str,sizeof(str)-1,F);
                str[strlen(str)-1]='\0';
                strcpy(obj->Genre,str);
 
                obj->next=0;
                tail=obj;
        }
        return tail;
}
void pr(Film*head)   
{
        while (head!=0)
        {
                printf("%s\n%d\n%s\n",head->Name,head->Year,head->Genre);
                head=head->next;
        }
}
int main()
{
        Film*head=0;
        Film*tail=0;
        head=new Film; 
        tail=head;
        FILE*F=fopen("Ghibli.txt", "r");
        if (F == NULL) {printf ("errror\n"); return -1;}
        else printf ("ok\n\n");
        createList(F,tail);
        pr(head->next);
        fclose;
}
Файл выглядит примерно так:

the lion king 2003 drama mulan 1998 adventure

Что не понятнее всего, на другом компьютере код работает в 2008 версии. Может ли быть дело в каких-либо настройках? Буду очень благодарна за помощь.

Решение задачи: «Код не работает в 2008 версии visual studio, но работает в 2005»

textual
Листинг программы
fgets(str,sizeof(str)-1,F)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы