C语言2223错误,错误在Visual Studio 2008中C++

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

当我有几个错误时,我应该如何命名标题? –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值