Если тип argtab
равен void **
, то тип argtab[i]
равен void *
, что не является указателем на тип структуры или объединения.
Обратите внимание, что при изменении типаargtab
от void **
до struct argnum**
недостаточно, потому что вам придется выделять каждый argtab[i]
в дополнение к выделению argtab
.
Возможно, вам лучше выделить argtab
как
struct argnum *argtab = malloc( sizeof *argtab * (argc - 1));
, а затем использовать .
вместо ->
для доступа к каждому члену:
argtab[i].rank = i;
, поскольку каждый argtab[i]
будет иметь тип struct argnum
, а не struct argnum *
.