C에서 2D 배열을 반환하는 함수 구현
제공된 코드 조각은 함수에서 2D 배열을 반환하려고 시도하지만 배열 선언에 문제가 있습니다. 이 문제를 해결하기 위해 보다 포괄적인 솔루션을 도입할 수 있습니다.
#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 함수에서 2D 배열을 올바르게 반환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!