二重指针:结构体指针的指针A** b,其成员变量的调用

在看ffmpeg工程的时候,需要调用输出一个变量码率,然而这个变量“隐藏”的特别深,其中涉及到二重指针,部分代码如下:

int main(int argc, char* argv[])
{
//....
    AVFormatContext *pFormatCtx;
    printf("frame rate:%d\n",pFormatCtx->streams[videoindex]->r_frame_rate.num);
//... 
        return 0;
}
typedef struct AVFormatContext {
       AVStream **streams;//二重指针
};
typedef struct AVStream {
          AVRational r_frame_rate;
};
typedef struct AVRational {
          int num;//rate
};

在最初调用的时候,没有加上[videoindex],导致调用错误,最后发现某处为二重指针。此处的二重指针可以看作指向一个内部元素为结构体指针AVStream *的数组的指针:
二重指针:结构体指针的指针A** b,其成员变量的调用_第1张图片

实际上我们接触的最简单的二重指针就是二维数组。

你可能感兴趣的:(二重指针,结构体指针)