作者jimmylin212 (JimmyG)
看板C_and_CPP
标题[问题] 动态二维阵列宣告
时间Tue Dec 8 21:50:32 2009
遇到的问题: (题意请描述清楚)
目前在网路上和爬文所得到的动态二维阵列宣告方法为
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
1F:→ akasan:matrixOne[i] = ( double* )malloc( columnOne_int * sizeo 12/08 21:57
2F:→ akasan:columnOne_int * sizeof( double ) 12/08 21:58
3F:→ jimmylin212:请问是 sizeof(double) 还是 sizeof(double*)sk7 12/08 22:04
4F:→ VictorTom:for里面那个是sizeof(double), 因为你这次是要这麽多个 12/08 22:06
5F:→ VictorTom:double来用, 而不是double*; 要错的话, 32位元环境 12/08 22:06
6F:→ VictorTom:double 8 byte, double* 4 byte, array八成会用爆@_@" 12/08 22:07
7F:→ jimmylin212:double* 4byte 比较容易爆掉? 12/08 23:01
8F:推 VictorTom:double是8 byte, double*只有4 byte, 应该要 12/08 23:11
9F:→ VictorTom:columnOne_int * 8的你只要到columnOne_int * 4 bytes 12/08 23:11
10F:→ VictorTom:的memory, 不是等着用爆吗?? 12/08 23:12
11F:→ VictorTom:先别管它, malloc你要配怎样型态的空间就写sizeof(TYPE) 12/08 23:13
12F:→ VictorTom:TYPE不match运气好没事, 运气不好就等着用爆了....XD 12/08 23:14
13F:→ jimmylin212:了解你的意思了.那为啥网路上的教学都会说回圈里面的 12/08 23:19
14F:→ jimmylin212:是要给 type * 呢? 感谢你 12/08 23:19
15F:推 VictorTom:for外面那个是sizeof(double*)没错, 因为你需要一个 12/08 23:52
16F:→ VictorTom:double*的阵列; for回圈里面则是对matrixOne[i]去配置 12/08 23:53
17F:→ VictorTom:double阵列; 建议您把教学里的东西再看仔细, 不然就贴 12/08 23:54
18F:→ VictorTom:出你看到的教学吧....@_@" 12/08 23:54
19F:→ jimmylin212:我思考看看,谢谢你了 12/09 00:15