二维数组的动态地址分配

img

这段代码什么意思?
他说是一个二维数组的动态地址分配

但是我看不懂,尤其是里面的(int(*)[dim])ptr,这个语法闻所未闻,我尝试把dim改成1,2,3这样的值还不可以。

直接打印ptr也不行。

可以改,没问题。
至于你说的这句的理解,写成下面这样就容易理解一点。其实有点像reshape即对ptr这个一维数组按每cols一行排好,这样就有rows=3行,将这个首行首地址给mat,那mat就自然是二维数组了:

img

(int(*)[dim])ptr 是一个类型转换,将指向 int 类型的指针 ptr 转换为指向长度为 dim 的一维 int 数组的指针。其中,(*) 表示指向数组的指针,[dim] 表示数组长度为 dimint 表示数组元素的类型为 int

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632