我们可以使用这种方法来分配2d矩阵 - //要求维度为i * j int ** p =(int **)malloc(sizeof(int)* i * j);

时间:2015-07-25 11:40:10

标签: malloc

我们可以使用这种方法来分配2d矩阵 -

//let require dimensions be i*j     
int **p=(int **)malloc(sizeof(int)*i*j);

1 个答案:

答案 0 :(得分:0)

你可以随时尝试,但它的行为不会像你期望的那样。

分配适用于i*j int,这很好。但是,当您访问p时,我猜您期望p[x][y]无法满足您的期望。

p[x]的类型为int*,因此程序会查看该内存的任何内存地址,并将y * sizeof(int)添加到该地址,这就是您的价值。

有关详细信息,请参阅this answer