gpt4 book ai didi

c++ - 'void*' 到 'char"分配中的不兼容类型 ------ 在 malloc 中

转载 作者:行者123 更新时间:2023-11-30 01:57:59 27 4
gpt4 key购买 nike

我正在使用 ide dev-cpp。当我尝试执行我的程序时

char *path;
path = malloc(10);

此代码返回错误:

34 20 E:\C\dir.cpp [Error] invalid conversion from 'void*' to 'char*' [-fpermissive]

这是什么原因?

如何为字符数组动态分配内存?

最佳答案

您正在使用 C++ 编译器进行编译,而不是问题的 C 标记所建议的 C 编译器。实际上,编译器名称和您的文件名支持您使用 C++ 编译器这一事实。

您的代码在 C 中有效,但在 C++ 中无效。在 C++ 中,您需要强制转换 malloc 返回的值。关于 C 和 C++ 之间差异的详细讨论,请参阅 Eli Bendersky 的这篇文章:void* and casts, in C and C++ .

但是,如果您正在编写 C++,那么您通常会避免使用 malloc 和原始指针,而是使用 std::string

或者,如果您正在编写 C,那么您只需使用 C 编译器编译代码。

关于c++ - 'void*' 到 'char"分配中的不兼容类型 ------ 在 malloc 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992009/

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