使用malloc会导致错误

cur*_*ity 2 c++ malloc

我试图将一些代码从目标c转换为非托管c ++我有这个操作

Buffer* ir =malloc( sizeof( Buffer ) );
Run Code Online (Sandbox Code Playgroud)

错误:表达式必须有指针类型?同样的错误进入这段代码

ir->buffer = malloc( bufferSize );
Run Code Online (Sandbox Code Playgroud)

能否请你malloc在这个非托管的c ++中正确使用它?

tro*_*foe 6

malloc()返回void *可能导致此问题的a.你可以投回报:

Buffer *ir = (Buffer *)malloc(sizeof(Buffer));
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是C++,则应使用new:

Buffer *ir = new Buffer;
Run Code Online (Sandbox Code Playgroud)

(如果你这样做,不要忘记更改free()delete).