1
予有這種類型的定義:如何動態分配'typedef struct'元素的數組?
typedef struct element
{
uint16_t value_raw;
float value_scaled;
char *tag;
char *id;
float scale;
} element;
我需要全局聲明這些類型的數組,一個文件,如在同一文件中的幾個其他功能需要訪問它。但是在讀取配置文件之前,我不會知道數組的大小,所以我需要動態分配它。我已經試過這樣:
element *pv;
int main()
{
int i;
int size = findoutthesize();
pv = malloc(sizeof(element) * size);
/* and then access the elements like this */
for (i = 0; i < size; i++)
pv[i].scale = (float) i;
}
,但它並沒有完全制定出我所料的道路...(所有.scale成員最終被同樣的價值,這是大小-1)
什麼是動態分配'元素'類型的數組的正確方法,所以我可以訪問數組中的每個元素的成員?
您的代碼是正確的,並且'scale'已正確初始化(例如,參見http://ideone.com/0MpJR8)。你如何檢查'scale'的值? – manlio 2014-09-21 20:04:22
它實際上是我不想在這裏發佈的較大文件的一部分,以防我嚇壞了任何人,但我可能已經模糊了真正的問題...... https://github.com/eriknyquist/modbus/ blob/master/abb_pch550_modbus.c 你可以看到我試圖在293行上做同樣的事情 – 2014-09-21 20:13:44