【发布时间】:2018-03-20 11:04:45
【问题描述】:
我正在尝试将固定结构转换为动态结构,但出现下一个错误:warning: data definition has no type or storage class 和 warning: type defaults to 'int' in declaration of 'clientes' [-Wimplicit-int]。我将展示我的项目:
文件variablesPrototypes.h
struct viaje {
char identificador[MAX_TAM_IDENTIFICADOR+3];
char ciudadDestino[MAX_TAM_CIUDAD_DESTINO+3];
char hotel[MAX_TAM_HOTEL+3];
int numeroNoches;
char tipoTransporte[MAX_TAM_TIPO_TRANSPORTE+3];
float precioAlojamiento;
float precioDesplazamiento;
};
struct cliente {
char dni[MAX_TAM_DNI+3];
char nombre[MAX_TAM_NOMBRE+3];
char apellidos[MAX_TAM_APELLIDOS+3];
char direccion[MAX_TAM_DIRECCION+3];
int totalViajes;
struct viaje viajes[MAX_TAM_VIAJES_CLIENTE];
};
extern struct cliente *clientes;
文件applicationVariables.c
clientes = (struct cliente *)malloc(sizeof(struct cliente)*1);
在我的main.c 中,首先包括variablesPrototypes.h,然后是applicationVariables.c。
为什么会这样?我已经测试了很长时间,但我没有解决问题。有什么想法吗?
谢谢。
【问题讨论】:
-
为什么您的
main.c包含另一个C 文件?你应该只包含头文件 -
现在是学习如何使用 Makefile 的好时机。你应该用minimal reproducible example 扩展你的问题,因为它目前缺乏足够的信息
-
你的问题是关于一个C程序的,那你为什么要在这里用JavaScript呢??
-
MCVE 表示最小、完整、可验证的示例。把你的程序带上问题,去掉所有不需要的东西来显示问题。保留编译所需的一切。 => MCVE。与 JSLint 的任何“页面”或 JavaScript 或其他任何东西都没有关系。
-
@JuMoGar 不,您的代码不是minimal reproducible example。它是最小的,但不完整。
标签: c struct malloc dynamic-memory-allocation