我们可以使用这种方法来分配2d矩阵 -
//let require dimensions be i*j
int **p=(int **)malloc(sizeof(int)*i*j);
答案 0 :(得分:0)
你可以随时尝试,但它的行为不会像你期望的那样。
分配适用于i*j
int
,这很好。但是,当您访问p
时,我猜您期望p[x][y]
无法满足您的期望。
p[x]
的类型为int*
,因此程序会查看该内存的任何内存地址,并将y * sizeof(int)
添加到该地址,这就是您的价值。
有关详细信息,请参阅this answer。