所以我試圖修改一些代碼,我需要創建一個結構數組。該結構聲明如下:創建一個結構數組
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] = function that returns header_p;
我得到以下編譯錯誤:
incompatible types when assigning to type ‘struct header’ from type ‘header_p’
編輯: (想通了) 在遵循Lundins的建議去除隱藏結構指針的愚蠢typedef之後,它很容易看到發生了什麼。那麼更容易看出,亞歷克斯是正確的需要取消我的指針。從技術上講,我會接受亞歷克斯的回答,那是我的問題。因爲它是一個指針
fileHeader[0].bit_res = ...
fileHeader[1].num_samples = ...
,你與[]
指數在尊重它:
你想使用C或C++嗎? – Tushar 2013-03-21 07:27:51
對於您標記的兩種語言,適當的答案完全不同。選一個。 – 2013-03-21 07:28:06
我打算在C. – tgai 2013-03-21 07:29:51