看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 目前在網路上和爬文所得到的動態二維陣列宣告方法為 double **matrixOne matrixOne = ( double** )malloc( rowOne_int * sizeof( void * ) ); for ( i = 0 ; i < rowOne_int ; i++ ) { matrixOne = ( double* )malloc( columnOne_int * sizeof( double * ) ); } // end for 應該會得到一個 matrixOne[rowOne_int][columnOne_int] 的二維陣列 程式跑出來的錯誤結果: 但是發生了 Compile error '=' : 無法由 'double *' 轉換為 'double **' 的問題 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Visual Studio 2008 補充說明: 不知道是不是在 VS2008 裡面寫法有改變 以上問題感謝回答的各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.225.223
akasan:matrixOne[i] = ( double* )malloc( columnOne_int * sizeo 12/08 21:57
akasan:columnOne_int * sizeof( double ) 12/08 21:58
jimmylin212:請問是 sizeof(double) 還是 sizeof(double*)sk7 12/08 22:04
VictorTom:for裡面那個是sizeof(double), 因為你這次是要這麼多個 12/08 22:06
VictorTom:double來用, 而不是double*; 要錯的話, 32位元環境 12/08 22:06
VictorTom:double 8 byte, double* 4 byte, array八成會用爆@_@" 12/08 22:07
jimmylin212:double* 4byte 比較容易爆掉? 12/08 23:01
VictorTom:double是8 byte, double*只有4 byte, 應該要 12/08 23:11
VictorTom:columnOne_int * 8的你只要到columnOne_int * 4 bytes 12/08 23:11
VictorTom:的memory, 不是等著用爆嗎?? 12/08 23:12
VictorTom:先別管它, malloc你要配怎樣型態的空間就寫sizeof(TYPE) 12/08 23:13
VictorTom:TYPE不match運氣好沒事, 運氣不好就等著用爆了....XD 12/08 23:14
jimmylin212:瞭解你的意思了.那為啥網路上的教學都會說迴圈裡面的 12/08 23:19
jimmylin212:是要給 type * 呢? 感謝你 12/08 23:19
VictorTom:for外面那個是sizeof(double*)沒錯, 因為你需要一個 12/08 23:52
VictorTom:double*的陣列; for迴圈裡面則是對matrixOne[i]去配置 12/08 23:53
VictorTom:double陣列; 建議您把教學裡的東西再看仔細, 不然就貼 12/08 23:54
VictorTom:出你看到的教學吧....@_@" 12/08 23:54
jimmylin212:我思考看看,謝謝你了 12/09 00:15