使用malloc会导致错误
use malloc leads to error
我正试图将一些代码从目标c翻译为非托管c++我有这个操作
Buffer* ir =malloc( sizeof( Buffer ) );
错误:表达式必须有指针类型?同样的错误出现在下面的代码
中ir->buffer = malloc( bufferSize );
你能给我提供malloc
在这个非托管c++中的正确用法吗?
malloc()
返回可能导致此问题的void *
。可以强制转换返回值:
Buffer *ir = (Buffer *)malloc(sizeof(Buffer));
或者,如果你正在使用c++,你应该使用new
代替:
Buffer *ir = new Buffer;
(如果你这样做,不要忘记将free()
更改为delete
)
Try
Buffer *ir = (Buffer*) malloc (sizeof(Buffer));
然而,更好的c++方法是在Buffer
类中有一个构造函数,然后使用像
这样的东西。Buffer *ir = new Buffer;
或者(如果构造函数接受一些参数)
Buffer *ir = new Buffer(args);
我强烈建议您在c++中使用new而不是malloc。Malloc完全不知道构造函数,使用' new '通常被认为是一个很好的做法(因此它是' delete '的孪生)。
请确保不要使用malloc与delete或new与free,我已经看到它可以做什么,让我告诉你,这是不愉快的
相关文章:
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 在C++中创建队列 - 什么是 malloc 错误?
- 错误:malloc:对象 0x7f9edf504080 的 *** 错误:未分配正在释放的指针
- C++程序错误:malloc():内存损坏
- 瓦尔格林德错误 - 地址0x0不是堆叠的 malloc'd 或自由的
- 如何修复对象在释放后可能修改的malloc错误
- C++ malloc 中的错误
- Malloc后的自由功能错误
- C++编译错误,"malloc: *** error for object: pointer being freed was not allocated"
- 如果在 C++ 中的 malloc() 之后调用 free() 则会出现错误
- malloc: 对象 0x00 的 *** 错误:未分配正在释放的指针
- 使用 malloc 而不是 new 会导致 free():指针错误无效
- 使用 std::shared_ptr 时出现 malloc 错误
- 使用Malloc C 时C2440错误
- 库"curl_easy_cleanup()"导致 malloc 错误 (C++)
- 解析 csv 文件,"malloc: *** error for object 0x7ffeeb4f4b80: pointer being freed was not allocated"出现此错误
- malloc: 对象 0x10003b3c4 的 *** 错误:未分配正在释放的指针 *** 在malloc_error
- 无法解决 opencv 代码中的 malloc 错误
- 错误:malloc():排序的比较函数内存损坏
- c++错误:' malloc '未在此范围内声明