Visual Studio показать мне предупреждения как:
предупреждения C4133: '=': несовместимые типы - от 'FILE *' в 'символ *'
предупреждение C4133: 'функции': несовместимые типы - от 'char *' to 'FILE *'предупреждение C4133, несовместимые типы
Предупреждения в строках, где комментарий «эта строка». Как я могу это исправить?
Мой код:
typedef struct {
int numberOfCity;
tListOfCity* list;
double** distances;
} tDatabase;
tDatabase* LoadDatabase(char* file) {
FILE* file;
tDatabase *input;
char data[100];
int i, j, number = 0;
input = (tDatabase*) calloc(1, sizeof (tDatabase));
input->list = NULL;
file = fopen("file.txt", "r"); //this line
fscanf(file, "%d", &number); //this line
input->numberOfCity = number;
input->distances = (double**) calloc(data->numberOfCity, sizeof (double*));
for (i = 0; i < input->numberOfCity; i++) {
input->distances[i] = (double*) calloc(input->numberOfCity, sizeof (double));
}
for (i = 0; i <= input->numberOfCity; i++) {
fgets(data, sizeof (data), file); //this line
input->list = AddOnEnd(input->list, CreateCity(data));
}
for (i = 0; i < input->numberOfCity; i++) {
for (j = 0; j < input->numberOfCity; j++) {
fscanf(file, "%f", &input->distances[i][j]); //this line
}
fclose(file);
return input;
}
Код плохо сформирован; ваша функция имеет как параметр, так и локальную переменную с именем «файл». Какая версия компилятора? Visual C++ 2010, 2012 и 2013 все отклоняют этот код как некорректный с «ошибкой C2082: переопределение формального файла параметров». –
@JamesMcNellis Согласен, он не должен компилироваться в первую очередь. –
Visual C++ 2008 Я получаю некоторые другие ошибки. – user3161483