#理解##二级指针#

int main()
{
 	int **pp;
 	int *p;
 	int **pp2;
  
 	*pp = (int*)malloc(sizeof(int) * 15);
 	p = (int*)malloc(sizeof(int) * 15);
 
 	pp2 = (int**)malloc(sizeof(int*) * 15);
  
 	return 0;
}

*pp 与 p等价,可以表示一个长度15的数组

pp2为二级指针,可以理解为一个长度15的指针数组,每个格子装的是一个(int *)指针。

JZ77 按之字形顺序打印二叉树

 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return int整型二维数组
 * @return int* returnSize 返回数组行数
 * @return int** returnColumnSizes 返回数组列数
 */
int** Print(struct TreeNode* pRoot, int* returnSize, int** returnColumnSizes ) {
    // write code here
}

其中int** returnColumnSizes;传入二级指针。

1.调用函数无法得知需要多大的内存,否则可以直接传入一个指针数组。

2.针对returnColumnSizes修改,上层调用函数是无法感知的。因此要对(*returnColumnSizes)进行修改。

3.此处 int **returnColumnSizes 可以等价于 int *pArray。 与int *pArray同理。可以使用pArray = (*returnColumnSizes);

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务