【问题标题】:Is there a way to convert void *buf to a char?有没有办法将 void *buf 转换为 char?
【发布时间】:2011-11-06 07:38:55
【问题描述】:

我正在使用读取功能来接收一个字符,然后再次运行读取功能。在再次运行该函数之前,我想将缓冲区中的内容保存到 char 变量中。像这样:

void *buf;
read(0,buf,1);
char tempChar;

我想将 *buf 中的内容存储到 char tempChar 中。我知道我不能让它们相等,但这可能吗?

谢谢。

【问题讨论】:

    标签: c char void


    【解决方案1】:

    你可以这样做:

    char tempChar;
    read(0,&tempChar,1);
    

    所以实际上根本不需要单独的缓冲区。

    【讨论】:

    • 顺便说一句,OP(或任何 C 新手)需要习惯于指针的第一件事是,当函数将指针作为参数时,不是 意味着您需要在调用者中使用指针变量。在许多情况下,您只是想传递现有局部变量的地址。
    【解决方案2】:

    如果需要额外的缓冲区,您可以tempChar = *(char *)buf;

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 2021-10-10
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2020-10-24
      • 2014-06-16
      相关资源
      最近更新 更多