这是我的代码.
struct MemoryStruct {
char *memory;
size_t size;
};
struct MemoryStruct *mem = &state->characters;
mem->memory = realloc(mem->memory, mem->size + len + 1);
Run Code Online (Sandbox Code Playgroud)
当我在'C'中运行此代码并通过gcc编译时,我没有收到任何错误.
但是同样的代码,我在C++中运行并用g ++编译它,我得到错误
错误:从'void*'到'char*'的无效转换[-fpermissive]
为什么它确实在C++中出错并且没有在C中给出错误
为什么它确实在C++中出错并且没有在C中给出错误
因为这些语言的规则是不同的.在这种特殊情况下,区别在于C++不允许转换void*为char*,而C则允许转换.这就是编译器错误告诉你的.