一个动态地分配二维数组,这个问题建立掀起了以前问的问题: Pass by reference multidimensional array with known sizeC++引用传递
我一直在试图找出如何让我的功能与二维数组引用发挥很好。我的代码的简化版本如下:
unsigned int ** initialize_BMP_array(int height, int width)
{
unsigned int ** bmparray;
bmparray = (unsigned int **)malloc(height * sizeof(unsigned int *));
for (int i = 0; i < height; i++)
{
bmparray[i] = (unsigned int *)malloc(width * sizeof(unsigned int));
}
for(int i = 0; i < height; i++)
for(int j = 0; j < width; j++)
{
bmparray[i][j] = 0;
}
return bmparray;
}
我不知道我怎么可以重新写这个功能,所以它会成功,我在传递bmparray为空unsigned int类型**通过引用这样我可以在一个函数中为数组分配空间,并在另一个函数中设置值。
如果我有一个功能,我使用malloc和指针分配一些内存传递对象,其实我延伸的阵列。现在,我必须使用return来传递相同的数组。现在,在我返回之前,我甚至无法释放它。在这种情况下,我可以做什么? – 2012-10-18 17:13:06
您必须编写这两个函数,以便接收分配数组的函数在此之后释放它。也就是说,接收分配值的函数必须知道它必须释放它。 – 2012-10-18 20:31:33