一個動態地分配二維數組,這個問題建立掀起了以前問的問題: 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