【发布时间】:2019-04-18 22:46:24
【问题描述】:
我有一个函数,它在一个返回指向数组的指针的函数中分配一个二维数组。创建数组需要一个指针数组,每个指针包含二维数组中一行的地址。
完成此数组后,如何在此函数之外正确释放这两个 malloc() 调用?
int** allocateMatrix(int rows, int cols)
{
int* arr = malloc(rows*cols*sizeof(int));
int** matrix = malloc(rows*sizeof(int*));
int i;
for(i=0; i<rows; i++)
{
matrix[i] = &(arr[i*cols]);
}
return matrix;
}
函数是这样使用的:
int** 2d_arr = allocateMatrix(row,cols);
谢谢!
【问题讨论】:
标签: c function pointers multidimensional-array free