1关于二级指针段错误的处理
在这个例子中,很明显,我们的目的是然main函数中的ppos是二维数组某一行的首地址,然后依次输出,当很显然,传递过去的poss是一个野指针,即传递过去后,在getPosPerson函数中,已经成功把二维数组某一行的首地址赋给指针poss了,但是是main函数中的poss并没有变化。
而当我把mian函数中poss的地址传递过去,因为poss本身的值就是一个地址,又把poss的地址传递过去自然就需要用一个二级指针接收,而巧好在getPosPerson函数中*ppos指向的就是main函数中的poss的值,然后把(int *)(pstu+pos)赋给*poss,下图便于理解
2二级指针与二维数组的偏差
经过分析:
3如何解决
这里定义了一个指针p1指向数组a[3][2]的第一列;
再定义一个二级指针p2指向p1,如何**p2,按常量,应该是会指到a[0][0]的值,再赋值给100,那么数组中a[0][0]的值应该变为100,看看结果如何.
看来这种是可行的;