Массив указателей void в C

Я хотел бы создать массивы указателей void.

# include  # include  # include  int main(){ void * A[3]; void * D[3]; void * F[2]; void * G[4]; void * H[4]; void * J[3]; void * K[5]; void * L[4]; void * M[5]; A={D, H, K}; D ={A, G, H}; F ={K, L}; G={D, H, J, M}; H={A, G, L, M}; J={G, L, M}; K={A, F, H, L, M}; L={F, J, K, M}; M={G, H, J, K, L}; return 0; } 

Проблема в том, что код не будет компилировать, он говорит: «Ожидаемое выражение перед {токеном]

Что случилось? Я использую эти указатели, потому что их значение не имеет значения, я просто хочу, чтобы они указывали друг на друга. Например, M должен указывать на G, H, J, K и L.

Большое спасибо за любую помощь или совет,

Вы должны сделать это в той же строке, если хотите использовать эту нотацию. В вашем случае вам придется делать

 A[0] = D; A[1] = H; A[2] = K; 

и так далее, потому что вам нужно добавить void * в символы, которые еще не были разрешены на этом этапе.

Так работает С.

Я считаю, что вам нужен код, который выглядит так:

 A[0] = D; A[1] = H; A[2] = K; 

или код, который выглядит следующим образом:

 void * A[3]={D,H,K}; 

Вы не можете использовать инициализаторы массивов в качестве назначений. Вам нужно будет сделать элемент присваивания мудрым:

 A[0] = D; A[1] = H; A[2] = K; 

Массивы не допускаются с левой стороны задания, кроме тех случаев, когда они объявлены, а инициализаторы массива могут использоваться только во время деклараций.

Поэтому вам придется писать, например:

 A[0] = D; A[1] = H; A[2] = K;