memcpy 如何 copy 動態 2維陣列 |
|
MyBCB
一般會員 發表:4 回覆:7 積分:2 註冊:2006-07-16 發送簡訊給我 |
我有一個很大的2維陣列,如下程式 想要用 memcpy 把這個2維陣列 copy到另外一個由matlab宣告的2維陣列, 但是這樣使用都一直有問題?
若2維陣列改用下方式,就可以使用,但問題是不能宣告double dbl2[4096][4096]或更大的; 會出現stack overflow! double dbl2[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 我有注意到這兩種2維陣的實際的型態是有差異,只是都可以用 dbl2[ ][ ] 的方式得到每一個元素值! 但是沒有idea做快速動態 2維陣列的copy ~~ 請問各位先進,有沒有辦法解決呢?
PS. mxGetPr 函式將回傳一個 double * 指向資料的開頭 int i,j,z; z=1; mxArray *A;
| ||||||||||||
MyBCB
一般會員 發表:4 回覆:7 積分:2 註冊:2006-07-16 發送簡訊給我 |
我曾在別的論壇看到相似的討論,試了dynamic_ 現在只能土法煉鋼,一個一個塞~
|
||||||||||||
MyBCB
一般會員 發表:4 回覆:7 積分:2 註冊:2006-07-16 發送簡訊給我 |
試了Allocate2DArray,但是copy的內容不對! template < typename T > ppi = new T*[nRows]; //(step 2) allocate memory for array of elements of each row // Now point the pointers in the right place template < typename T > |
||||||||||||
MyBCB
一般會員 發表:4 回覆:7 積分:2 註冊:2006-07-16 發送簡訊給我 |
|||||||||||||
CoffeeX
中階會員 發表:18 回覆:121 積分:72 註冊:2005-02-18 發送簡訊給我 |
|||||||||||||
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
這個題目很經典,忍不住要出來讚賞一下! 真是太經典的可學習範本: 可以了解二維陣列的初始,也了解指標的指標,也了解 c 裡的tmplate功能,對剛學 c 的人是個好題目!
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
||||||||||||
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
補充一下,把 純 C 版的也放上來給大家參考 #include
for(i = 0; i < x; i ) void Free2DArray(void ** Array)
ppi = new T*[nRows]; //(step 2) allocate memory for array of elements of each row // Now point the pointers in the right place template < typename T > int main(void) /* C void** version --------------------------------*/
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |