我用这段代码在 C 中有一个缓冲区
buffer = malloc(sizeof(uint32_t)*CACHE_LEN*2);
如何将此行更改为 C++?
使用 malloc
还是使用 new[]
更好?
我无法理解此 sizeof(uint32_t)
的含义。
最佳答案
你提到的那行在 C++ 中编译得很好,除了这个事实,如果 buffer
不是 void *
,那么你可能需要转换的返回值malloc
在 C++ 中,您不需要在 C 中执行(并且可能不应该执行)。
如:
uint32_t *buffer = (uint32_t *) malloc(sizeof(uint32_t)*CACHE_LEN*2);
但是,您可能希望转换为new
/delete
范式;这需要的不仅仅是改变那条线。
如:
uint32_t *buffer = new uint32_t[CACHE_LEN*2];
...
delete[] buffer;
如果你想更像 C++,那么使用 std::vector
或类似的:
std::vector<uint32_t> buffer(CACHE_LEN*2);
关于c++ - 如何将使用 malloc() 的 C 语句转换为 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226016/