0 c
typedef struct car car_t;
struct Car {
int carID[QUEUE_SIZE];
int f[QUEUE_SIZE];
};
int main (){
int Array[ARRIVAL_QUEUE_SIZE];
car_t *ddd = (car_t*)malloc(sizeof(car_t));
for(int i =0; i<2; i++){
int carid = ((CARID_NUMBER_MIN)+(int)((double)(NUMBER_MAX-NUMBER_MIN+1)*rand()/(RAND_MAX+1.0)));
Array[i] = carid;
ddd-> carID[i] = Array[i];
ddd-> f[i] = Array[i];
}
}
Run Code Online (Sandbox Code Playgroud)
它抱怨解除指向不完整类型的指针并将'sizeof'无效应用于不完整类型'car_t'
嗯,这是因为car_t指struct car其是一个不完整的类型.
你确定你不是故意的struct Car(大写'C')?
该sizeof(car_t)不会在被称为malloc呼叫,因为你没有指定什么是真正的内部是结构.
ISO C标准(C99,6.2.5)将不完整类型定义为"描述对象但缺少确定其大小所需信息的类型".这正是你在这种情况下所拥有的.