我有一个如下代码,它工作正常:
AVFrame *frame = NULL;
open_input(&frame);
其中open_input的输入参数类似于:AVFrame**frame;
现在,我想扩展这段代码来处理一个帧数组(比如,N帧)。我尝试了以下代码,但我的代码在MingW被gcc编译后停止工作:
int i, N = 3;
AVFrame **frame;
frame = (AVFrame *) malloc(N * sizeof(AVFrame *));
for(i=0;i<N;i++){
frame[i] = (AVFrame *) malloc(sizeof(AVFrame));
open_input(&frame[i]);
}
你知道,有什么问题吗?
最佳答案
如果要分配一个帧数组,只需执行以下操作
AVFrame *frame = malloc(N * sizeof(*frame));
使用
frame[index]
访问每个元素只有在需要
AVFrame
数组的数组时,才需要指向AVFrame
的指针。关于c - 在C中创建指向结构的指针的动态数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20746083/