[語法] 分配二維矩陣

看板C_and_CPP (C/C++)作者 (不下棋)時間15年前 (2010/09/18 11:27), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
void* new2d(int h,int w,int size) { void **p; p = (void**)new char[h*sizeof(void*)+h*w*size]; for(int i=0; i<h; i++) p[i] = ((char*)(p+h))+ i*w*size; } void main(void) { int **Array = (int**)new2d(m,n,sizeof(int)); } 請問一下上面這段程式碼是什麼意思阿? 這邊((char*)(p+h))又是什麼意思? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.253.190

09/18 11:31, , 1F
何不先講講,你覺得是什麼意思呢
09/18 11:31, 1F

09/18 11:41, , 2F
這個程式搬到64bit的OS上面會有問題
09/18 11:41, 2F

09/18 11:45, , 3F
不懂為什麼要這樣寫...有必要寫成這樣嗎?
09/18 11:45, 3F

09/18 11:53, , 4F
to二樓: 我怎麼看不出問題...?
09/18 11:53, 4F

09/18 11:55, , 5F
除了該用 [h*sizeof(char*)+h*w*size] 之外我沒看到太大問題
09/18 11:55, 5F

09/18 11:55, , 6F
噢不 原來的寫法是對的 orz
09/18 11:55, 6F

09/18 11:56, , 7F
啊對啦 他忘了把 p 丟回去是真的
09/18 11:56, 7F

09/20 13:55, , 8F
凡人用一維陣列就好,多維陣列會搞死自己...
09/20 13:55, 8F
文章代碼(AID): #1Cb365aX (C_and_CPP)
文章代碼(AID): #1Cb365aX (C_and_CPP)