这是目前为止对我有效的C++代码:
Main.cpp:
Main.cpp:
unsigned __int16** image_data;
image_data = Grabber->get_image_data(1);
interface.cpp:
unsigned __int16** Grabber::get_image_data(int image_num) {
unsigned __int16 **pixel_values = 0;
pixel_values = new unsigned __int16*[height];
for (int h = 0; h < height; h++) {
pixel_values[h] = new unsigned __int16[width];
for (int w = 0; w < width; w++) {
pixel_values[h][w] = ...;
}
}
return pixel_values;
}
现在我想将数组作为指针传递给函数。我尝试了以下代码,但它不再起作用。
Main.cpp:
unsigned __int16** image_data;
Grabber->get_image_data(1, &image_data);
Interface.cpp:
int Grabber::get_image_data(int image_num, unsigned __int16*** image_data) {
*image_data = new unsigned __int16*[height];
for (int h = 0; h < height; h++) {
*image_data[h] = new unsigned __int16[width];
for (int w = 0; w < width; w++) {
*image_data[h][w] = ...;
}
}
return 0;
}
我有没有犯任何推理错误?
__int16*
),并手动计算索引。更好的方法是使用std::vector<int16_t>
,它利用标准typedef并自动管理其内存。 - Bartek Banachewicz