new 语句比 malloc 语句对程序员更加友好。 写法上,更加简洁, 也更加好懂。
以矩阵运算为例。 当我们需要创建一个矩阵的时候, 可以使用二级指针, 在内存中申请一块空间。
mat = new int*[row_len] ;
for(int i=0 ; i<row_len ; i++){
mat[i] = new int [col_len] ;
}
观察上面的代码:
- 首先给二级指针mat申请内存。 申请了长度为row_len的内存,类型是一级指针。
- 然后给每个一级指针申请动态内存,长度为col_len, 类型为int。
可以将 [] 中的内容看做长度, 之前的 int*, int 等看做类型, 这样申请空间的语句就变得好懂。 多维数组申请空间需要从高级向低级申请。