gpt4 book ai didi

C++ 错误 : invalid conversion from 'void*' to 'char*'

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:35 24 4
gpt4 key购买 nike

我有这个 C++ 代码:

#include <stdlib.h>
int main(){
char *Teclas;
Teclas = calloc(1024,sizeof(char));
}

编译器报如下错误:

error: invalid conversion from `void*' to `char*'

这个错误是什么意思,我该如何解决?

最佳答案

问题是您正在尝试使用 C++ 编译器编译 C。正如错误消息所说,这一行:

Teclas = calloc(1024,sizeof(char));

尝试将 calloc 返回的非类型化 void* 指针转换为类型化的 char* 指针以分配给该类型的变量。这种转换在 C 中有效,但在 C++ 中无效。

解决方案是使用 C 编译器。看起来您正在使用 GCC,因此只需将源文件重命名为 something.c,然后使用 gcc 而不是 g++ 进行构建。

如果您真的必须为错误的语言使用编译器,并且不想用惯用的 C++ 重写它,那么您将需要一个转换来强制它通过编译器:

Teclas = static_cast<char*>(calloc(1024,sizeof(char)));

或者,如果您希望代码保持有效 C:

Teclas = (char*)calloc(1024,sizeof(char));

但不要那样做:为该语言使用正确的编译器。除非这是将程序转换为 C++ 的第一步;在这种情况下,接下来要做的就是摆脱这些分配并改用 std::string

关于C++ 错误 : invalid conversion from 'void*' to 'char*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com