首頁 >後端開發 >C++ >如何從 C 函數正確返回二維數組?

如何從 C 函數正確返回二維數組?

DDD
DDD原創
2024-12-15 10:20:11678瀏覽

How Can I Correctly Return a 2D Array from a C   Function?

在C 中實現返回二維數組的函數

提供的程式碼片段嘗試從函數返回二維數組,但它數組聲明有問題。為了修正這個問題,我們可以引入一個更全面的解決方案:

#include <iostream>
using namespace std;

// Returns a pointer to a newly created 2D array with dimensions [height x width]
int** MakeGridOfCounts(int height, int width) {
  int** grid = new int*[height];  // Dynamically allocate an array of pointers to rows
  
  for (int i = 0; i < height; i++) {  // Allocate each row and set its columns to 0
    grid[i] = new int[width];
    fill_n(grid[i], width, 0);
  }
  
  return grid;
}

int main() {
  int** grid = MakeGridOfCounts(6, 6);  // Get a 6x6 grid (initialized with 0s)
  
  // Do something with the grid...

  // Release allocated memory
  for (int i = 0; i < 6; i++) {
    delete[] grid[i];
  }
  delete[] grid;
  
  return 0;
}

在此解決方案中,我們使用記憶體管理技術來動態分配 2D 數組,確保正確的記憶體處理。 fill_n 函數用於將陣列的每個元素初始化為 0。請注意,記憶體的分配和釋放應在同一範圍內執行(在本例中,在 main 函數內)。

以上是如何從 C 函數正確返回二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn