有誰知道第三行「Free(array)」的作用?這裏的數組只是數組第一個元素的地址(換句話說,指向int *右數組中第一個元素的指針)?爲什麼我們需要第三行來釋放2D數組的「列」?我基本記住/瞭解a是一個指向____的地址。這個短語是否正確?動態分配2維數組
例如:int ** a; int * b; int c; b = & c = 4; a =&b;這是正確的嗎?謝謝!!!
此外,一般來說,雙指針基本上是動態分配的數組嗎? 「最後,當需要釋放其中一個動態分配的多維數組時,我們必須記住釋放我們分配的每個內存塊(只需釋放頂層指針,陣列,不會削減它,如果我們這樣做,所有的二級指針將丟失,但沒有釋放,而且會浪費內存),下面的代碼可能是什麼樣子:」 http://www.eskimo.com/~scs/cclass/int/sx9b.html
for(i = 0; i < nrows; i++)
free(array[i]);
free(array);
此外,當您使用printf(「%s」,數組)時,其中數組是char *,編譯器將該數組看作數組[0]的地址,但將其正確地打印出來?我只是好奇,如果我理解正確。 – 2014-09-18 20:21:03