gpt4 book ai didi

c++ - 与 void* 类型的内存分配混淆?

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:33 25 4
gpt4 key购买 nike

我在 C++ 编程方面非常缺乏经验,现在我正在尝试使用 dctmk 制作一个小程序来修改 dicom 图像的像素数据。在阅读文档时这样做,我发现了一个我不太清楚的 c++ 方法。在类的文档中 DicomImage我找到了以下方法:

int DicomImage::getOutputData   (   void *      buffer,
const unsigned long size,
const int bits = 0,
const unsigned long frame = 0,
const int planar = 0
)

我的困惑是关于buffer。它在链接中引用为

buffer : pointer to memory buffer (must already be allocated)

这里我的困惑是我如何分配?我不确定如何分配 void 类型指针的内存。你能解释一下吗?谢谢。

最佳答案

可以通过以下方式(举例):

void * mem = malloc(1024); // 1 kb

image.GetOutputData(mem, 1024);

// Don't forget to free(mem);

另一种方式:

char * mem = new char[1024];

image.GetOutputData((void *)mem, 1024);

// Don't forget to delete[] mem;

另一种方式:

char mem[1024];

image.GetOutputData((void *)&mem, 1024);

关于c++ - 与 void* 类型的内存分配混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16583703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com