从 C 中的函数返回 2D 数组
在 C 中使用 2D 数组时,提供的代码中提供的方法不是受到推崇的。相反,请考虑实现以下函数:
int** create2DArray(unsigned height, unsigned width) { int** array2D = 0; array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; for (int w = 0; w < width; w++) { // Initialize array elements as needed } } return array2D; }
此函数将所需二维数组的高度和宽度作为无符号整数,并为其动态分配内存。先分配外层数组,然后在循环内分配内层数组。
使用后记得释放内存,防止内存泄漏。这可以通过循环遍历元素并删除内部和外部数组来完成。
用法示例:
int height = 15; int width = 10; int** my2DArray = create2DArray(height, width); // Use the array as needed // ... for (int h = 0; h < height; h++) { delete [] my2DArray[h]; } delete [] my2DArray; my2DArray = 0; // Set pointer to null to prevent dangling pointer
以上是如何从 C 函数安全地返回和管理 2D 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!