我对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
)
Run Code Online (Sandbox Code Playgroud)
我的困惑是关于buffer.它在链接中被引用为
buffer:指向内存缓冲区的指针(必须已经分配)
在这里我的困惑是我如何分配?我不确定如何分配一个void类型指针的内存.你能解释一下吗?谢谢.
您可以通过以下方式执行此操作(例如):
void * mem = malloc(1024); // 1 kb
image.GetOutputData(mem, 1024);
// Don't forget to free(mem);
Run Code Online (Sandbox Code Playgroud)
其他方式:
char * mem = new char[1024];
image.GetOutputData((void *)mem, 1024);
// Don't forget to delete[] mem;
Run Code Online (Sandbox Code Playgroud)
其他方式:
char mem[1024];
image.GetOutputData((void *)&mem, 1024);
Run Code Online (Sandbox Code Playgroud)