weixin_75269911 2023-06-14 01:10 采纳率: 0%
浏览 39

关于void的问题出错不知道怎么解决

img


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define FALSE -1
#define TRUE 1
#define MAX_QUEUE_SIZE 200
#define MAX_STACK_SIZE 8

int price = 2;      //收费每秒单价
int earn = 0;       //当日收入总和
//时间结构体
typedef struct {
    int hour;
    int min;
    int sec;
}Time;
//车结构体且并入时间结构体
typedef struct {
    char ID[8];
    Time iTime;
    Time oTime;
}Car;
//栈结构体
typedef struct {
    Car base[MAX_STACK_SIZE];
    int top;
    int length;
    int maxLength;
}Stack;
//列队结构体
typedef struct {
    Car base[MAX_QUEUE_SIZE];
    int front;
    int rear;
    int length;
    int maxLength;
}DeQueue;
//自动获取车牌结构体
void getID(Car* P){
    int num = rand()%10000+10000;                                   //产生车辆的数字部分,且保证位数是五
    char locations[25][5] = {"@A","@B","@C","@D","@E","@F","@G","@H",
     "@J","@K","@L","@M","@N","@O","@P","@Q","@R","@S",
     "@T","@U","@V","@W","@X","@Y","@Z"};
    sprintf(P->ID,"%s%d",locations[rand()%25],num);    //sprintf函数四个参数分别对应
}
//栈的初始化
Stack *IniSTK() {
    Stack *STK = malloc(sizeof (Car)*MAX_STACK_SIZE);
    for (int i = 0;i < MAX_STACK_SIZE; i++)
        STK->base[i] = *(Car*)malloc(sizeof (Car));
            STK-> top = -1;
            STK-> maxLength = 8;
            return STK;
}
//列队初始化
DeQueue *IniDQ() {
    DeQueue *DQ = malloc(sizeof(DeQueue)*MAX_QUEUE_SIZE);
    for (int i = 0;i < MAX_QUEUE_SIZE; i++)
        DQ->base[i] = *(Car *)malloc(sizeof (Car));
            DQ->front = DQ->rear = DQ->length = 0;
            DQ->maxLength = 8;
            return DQ;
}
//时间填充函数,用于减少代码重复量
struct tm* creatTime() {
    time_t now;
    struct tm *structTime;
    time(&now);
    structTime = localtime(&now);
    return  structTime;
}
//获得进入时间
void getInTime(Car *car) {
    struct tm *structTime =creatTime();
    car-> iTime.hour = structTime-> tm_hour;
    car-> iTime.min  = structTime-> tm_min;
    car-> iTime.sec  = structTime-> tm_sec;
}
//获得离开时间
void getOutTime(Car *car) {
    struct tm *structTime = creatTime();
    car->oTime.hour = structTime->tm_hour;
    car->oTime.min =
  • 写回答

4条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-14 04:05
    关注
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7607528
    • 你也可以参考下这篇文章:关于void的总结
    • 除此之外, 这篇博客: void指针类型中的 void指针类型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    • void指针为无类型指针,可以指向任何类型数据。

    • 以下回答由chatgpt基于相关博客总结生成:

      如果在使用void关键字时出现了错误,具体情况需要看错误提示的内容。下面列举一些可能的解决方案:

      1. 如果是函数返回值类型为void时出现错误,需要检查函数是否正确定义。例如,是否返回了某个值。正确的函数定义应该是:
      void functionName() {
          // 函数体
      }
      
      1. 如果是函数参数类型为void时出现错误,需要检查函数参数是否正确定义。例如,是否缺少了某个参数或某个参数的类型不正确。正确的函数定义应该是:
      void functionName(void) {
          // 函数体
      }
      
      1. 如果是使用void指针时出现错误,需要注意void指针默认不能进行指针运算,即不能直接对其进行加、减等运算,需要先转换为具体的类型再进行指针运算。例如:
      void *p;
      int *q = (int *)p;
      q++; // 可以对q进行指针运算
      
      1. 如果是使用void指针时进行类型转换时出现错误,需要注意浮点型和整型不能直接进行类型转换,需要先判断该指针是指向浮点型还是整型再进行类型转换。

      总结来说,遇到void关键字出现错误时需要检查函数定义、函数参数定义和指针类型转换等问题。根据具体情况进行排查和解决。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月14日

悬赏问题

  • ¥15 请教合适的模型做回归
  • ¥15 stm32cubemx生成代码后利用printf输出浮点数卡死。
  • ¥15 关于#windows#的问题:我是想本地生成pdf的标签文件然后扔给其他的电脑打印,是修改pdf打印格式打印出来这个pdf给那边打印,还是说有其他办法可以生成文件给人家打印
  • ¥15 dy/dx-y/x=x^2sinx通解 解题过程 用一阶线性非齐次公式
  • ¥15 ERNIE大模型的系统记忆没有生效
  • ¥15 如何用C++在CAD二次开发中,对标注AcDbDimension文字的高度与宽度的获取方法?
  • ¥15 C++检查代码什么问题
  • ¥20 matlab写的上位机UDP速率不到1M
  • ¥100 tomcat应用从Termux上连接不到Linux上的MySQL服务器(相关搜索:服务器)
  • ¥15 flutter 错误RROR:flutter/runtime/dart_vm_initializer.cc(41)