如何计算struct中数组元素的个数

时间:2021-01-04 10:14:38

标签: c

我想使用以下 c 代码计算数组的元素数:

#include <stdio.h>

// Number of elements in an array
#define NUM_ELEM(x) (sizeof((x)) / sizeof((x)[0]))
#define LIST_KEY (char *[])
typedef struct dm_key_reg {
    char *obj;
    char **ukey;
}DMKEYREG;

DMKEYREG tab_reg_key[]={
{"Device_SS", LIST_KEY{"SerialSS", "SSS", "A"}},
{"Device__AP", LIST_KEY{"SerialAP", "III", "B"}},
{"Device___EP", LIST_KEY{ "SerialEP", "EEE", "CCC", "C"}},
{0}
};

int main(void)
{
    int i=0;
DMKEYREG *tab_key = tab_reg_key;
for (; tab_key->obj; tab_key++) {
    i++;
    printf("i=%d <>  ukeysize= %d\n",i, NUM_ELEM((tab_reg_key->ukey)));
}
}

但我得到了以下结果:

i=1 <>  ukeysize= 1
i=2 <>  ukeysize= 1
i=3 <>  ukeysize= 1

0 个答案:

没有答案
相关问题