0
我閱讀本C++ tutorial,並且在指針部分有一個令人困惑的例子,正是這一點:動態存儲器分配和指針非字符數組類型
double (*pVal2)[2]= new double[2][2]; //this will add 2x2 memory blocks to type double pointer
*(*(pVal2+0)+0) = 10;
*(*(pVal2+0)+1) = 10;
*(*(pVal2+0)+2) = 10;
*(*(pVal2+0)+3) = 10;
*(*(pVal2+0)+4) = 10;
*(*(pVal2+1)+0) = 10;
*(*(pVal2+1)+1) = 10;
*(*(pVal2+1)+2) = 10;
*(*(pVal2+1)+3) = 10;
*(*(pVal2+1)+4) = 10;
是int (*pVal)[2]
數組指針? 我不明白爲什麼它爲double[2][2]
分配內存,但*(*pVal2+1)+4)
是4?
'int(* pVal)[2]'是一個指向2個整數的指針。你能更具體地瞭解「發生了什麼」嗎?該教程看起來很差,這可能是一個想法,避開它。 – juanchopanza
動態分配內存時不應該爲double [2] [5]分配嗎? – ner0x652
@ ner0x652你的意思是'double [5] [2]'?無論哪種方式,仍然不會使其餘的代碼有效...... – Barry