error C2371: 'tDatabase' : redefinition; different basic types
db.h(7) : see declaration of 'tDatabase'
error C2223: left of '->numberOfCity' must point to struct/union
error C2198: 'calloc' : too few arguments for call
我初学C.我该如何解决呢?谢谢。
文件:DB.h
typedef struct Database {
int numberOfCity;
tListOfCity* list;
double **distances;
} tDatabase;
tDatabase *LoadDatabase(char* file);
文件DB.c
#include
#include
#include
#include "DB.h"
typedef struct Database{
int numberOfCity;
tListOfCity* list;
double** distances;
} tDatabase; //this line error C2371
tDatabase* LoadDatabase(char* file) {
FILE* fileName;
tDatabase *input;
char data[100];
int i, j, number = 0;
input = (tDatabase*) calloc(1, sizeof (tDatabase));
input->list = NULL;
fileName = fopen("file.txt", "r");
fscanf(fileName, "%d", &number);
input->numberOfCity = number;
input->distances = (double**) calloc(data->numberOfCity, sizeof (double*)); //this line Error C2223 and C2198
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), fileName);
input->list = AddOnEnd(input->list, CreateCity(data));
}
for (i = 0; i < input->numberOfCity; i++) {
for (j = 0; j < input->numberOfCity; j++) {
fscanf(fileName, "%f", &input->distances[i][j]);
}
fclose(fileName);
return input;
}
+1
您的编译器告诉您不要重新定义该结构。你为什么这样做? –
+0
请告诉我们这些你不明白的错误信息。 SO的工作方式与您所设想的不同。您的问题标题完全不特定。您以后如何认为这样的问题标题可以被搜索以供其他人使用? –
+0
当我有几个错误时,我应该如何命名标题? –