C++ 二维数组作为返回值c++;
我想构建一个返回2D数组的函数C++ 二维数组作为返回值c++;,c++,C++,我想构建一个返回2D数组的函数 TExposureType** CAteImage::GetExposureMatrix() { TExposureType** ptr = new TExposureType*[FORMAT_MATRIX_ROWS]; for (int i = 0; i < FORMAT_MATRIX_ROWS; i++) { ptr[i] = new TExposureType[FORMAT_MAT
TExposureType** CAteImage::GetExposureMatrix()
{
TExposureType** ptr = new TExposureType*[FORMAT_MATRIX_ROWS];
for (int i = 0; i < FORMAT_MATRIX_ROWS; i++)
{
ptr[i] = new TExposureType[FORMAT_MATRIX_COLS];
for (int j = 0; j < FORMAT_MATRIX_COLS; j++)
{
ptr[i][j] = m_ExposureMatrix[i][j];
}
}
return ptr;
}
如果我正确理解你的问题,(这是一个很大的假设),这就是你想要的: 在类标题中:
const TExposureType (&GetExposureMatrix()) [FORMAT_MATRIX_COLS][FORMAT_MATRIX_ROWS];
在您的cpp文件中
const TExposureType (&CAteImage::GetExposureMatrix()) [FORMAT_MATRIX_COLS][FORMAT_MATRIX_ROWS]
{
return m_ExposureMatrix;
};
顺便说一句,如果您有一个兼容的编译器支持它,那么您可以使用
decltype
大大缩短这个时间。无论哪种方式,您都应该能够通过const reference返回m\u ExposureMatrix
,执行上述操作。您的代码返回一个指向数组数组的指针,因此是一个2D数组。你到底想要什么?指针的指针,撇开语法不谈,不是2D数组。二维数组是arr[N][M]
并且不一样。要知道如何为二维数组返回一个引用而不是指针,请参考什么??你的动态内存分配?@WhozCraig我想返回一个2D数组,比如m_ExposureMatrix[i][j];作为我函数中的常量引用。你能告诉我怎么做吗?
const TExposureType (&CAteImage::GetExposureMatrix()) [FORMAT_MATRIX_COLS][FORMAT_MATRIX_ROWS]
{
return m_ExposureMatrix;
};