这段代码什么意思?
他说是一个二维数组的动态地址分配
但是我看不懂,尤其是里面的(int(*)[dim])ptr,这个语法闻所未闻,我尝试把dim改成1,2,3这样的值还不可以。
直接打印ptr也不行。
可以改,没问题。
至于你说的这句的理解,写成下面这样就容易理解一点。其实有点像reshape即对ptr这个一维数组按每cols一行排好,这样就有rows=3行,将这个首行首地址给mat,那mat就自然是二维数组了:
(int(*)[dim])ptr
是一个类型转换,将指向 int
类型的指针 ptr
转换为指向长度为 dim
的一维 int
数组的指针。其中,(*)
表示指向数组的指针,[dim]
表示数组长度为 dim
,int
表示数组元素的类型为 int
。