我正在尝试将一些代码从 objective-c 转换为非托管C++
我有这个手术

Buffer* ir =malloc( sizeof( Buffer ) );

错误:表达式必须具有指针类型?
相同的错误进入此代码

ir->buffer = malloc( bufferSize );

您能否在这个不受管理的C++中为我提供malloc的正确使用?

最佳答案

malloc()返回可能导致此问题的void *。您可以强制返回:

Buffer *ir = (Buffer *)malloc(sizeof(Buffer));

或者,如果您使用的是C++,则应改用new:
Buffer *ir = new Buffer;

(如果这样做,请不要忘记将free()更改为delete)。

关于c++ - 使用malloc导致错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8209356/

10-15 02:21