我试图将一些代码从目标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 ++中正确使用它?
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).