我正在使用一个 C++ 库,它要求我将它传递给一个二维数组。他们的代码示例给出了一个静态大小的数组,如下所示:
double data[][2] = {
{ 10, 20, },
{ 13, 16, },
{ 7, 30, },
{ 15, 34, },
{ 25, 4, },
};
但我需要传递运行时大小的数据。所以我试图这样做:
// unsigned numBins is passed in to this function and set at run time
double** binData = new double*[numBins];
for(unsigned i=0; i < numBins; ++i) {
binData[i] = new double[2];
}
//Set the data with something like
// binData[7][0] = 10;
// binData[7][1] = 100;
//Later, diligently delete my data...
但是,这在我正在使用的库中失败了。它以绘制一些垃圾数字的图形结束。
我知道数组不是指针。图书馆可能会在某处做“sizeof”感到困惑。
如果我无法更改此库(它是第 3 方),我该如何传递动态大小的数据?
谢谢,麦迪。