21xrx.com
2024-12-22 20:53:01 Sunday
登录
文章检索 我的文章 写文章
如何在C++中返回二维数组作为函数的值
2023-07-10 17:13:43 深夜i     --     --
C++ 二维数组 函数 返回

在C++中,函数可以返回各种类型的值,包括指针、引用、结构体等等,那么如何返回一个二维数组呢?

要返回一个二维数组,我们可以使用指针,因为指针可以指向一个数组或者一个数组的元素。下面给出一个例子来说明如何返回二维数组的指针。


int** createArray(int rows, int cols){

  int** array = new int*[rows];

  for(int i = 0; i < rows; i++){

    array[i] = new int[cols];

  }

  return array;

}

void fillArray(int** array, int rows, int cols){

  for(int i = 0; i < rows; i++){

    for(int j = 0; j < cols; j++){

      array[i][j] = i * j;

    }

  }

}

void printArray(int** array, int rows, int cols){

  for(int i = 0; i < rows; i++){

    for(int j = 0; j < cols; j++){

      std::cout << array[i][j] << " ";

    }

    std::cout << std::endl;

  }

}

int main(){

  int rows = 3;

  int cols = 4;

  int** array = createArray(rows, cols);

  fillArray(array, rows, cols);

  printArray(array, rows, cols);

  // Important: free the memory allocated by createArray()

  for(int i = 0; i < rows; i++){

    delete[] array[i];

  }

  delete[] array;

  return 0;

}

在上面的代码中,我们创建了一个叫做`createArray`的函数来创建一个指向二维数组的指针。它接受两个参数:数组的行数和列数,返回一个指向`int`类型的指针。

在`createArray`函数中,我们首先创建一个指向指针的指针,然后使用一个循环在每一行中创建一个`int`类型的数组。最后,我们返回指向指针数组的指针。

然后,我们使用两个辅助函数`fillArray`和`printArray`来填充和打印数组。它们接受一个指向数组的指针,以及数组的行和列数作为参数。

在`main`函数中,我们调用`createArray`来创建一个名为`array`的指向二维数组的指针。我们调用`fillArray`来填充数组,然后使用`printArray`来打印它。

最后,我们要记得释放`createArray`函数中动态分配的内存,避免内存泄漏。

总的来说,返回二维数组需要使用指针和动态内存分配。尽管在C++11中引入了更方便的数组引用方式,但是使用指针仍然是一个很好的选择,特别是当我们需要使用动态内存分配的时候。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复