所以我试图修改一些代码,我需要创建一个结构数组。该结构声明如下:
typedef struct header
{
int sample_rate;
int num_channels;
int bit_res;
int num_samples;
char *data;
} header;
typedef struct header* header_p;
创建和使用此结构的数组的正确方法是什么?我正在尝试以下方式:
header_p fileHeader;
...
fileHeader = (header_p)malloc(sizeof(header) * (argc-1));
这似乎可行,但我不确定如何正确访问数组。
编辑:(我的一些问题不知何故被砍掉了)当我尝试像这样访问数组时:
fileHeader[0] = 返回 header_p 的函数;
我收到以下编译错误:
incompatible types when assigning to type ‘struct header’ from type ‘header_p’
编辑:(想通了)在遵循 Lundins 的建议删除隐藏结构指针的愚蠢 typedef 之后,更容易看到发生了什么。然后更容易看出 Alex 关于取消引用我的指针的必要性是正确的。我将接受亚历克斯的回答,因为从技术上讲这是我的问题。