Crea una matriz con elementos de diferentes tipos.

Necesito declarar una matriz que consta de diferentes tipos de variables, principalmente:

char *A; uint32_t B; int C; 

Como entendí en los tutoriales, en la matriz declara el tipo y la cantidad de elementos. Así que para decir algo como:

 int a[3]; 

donde en este caso, el tipo de los tres elementos son todos enteros. Entonces, ¿cómo quiero declarar una matriz que consta de los tres tipos diferentes mencionados anteriormente?

La definición de una matriz en C es una colección de elementos del tipo SAME. Lo que buscas es probablemente una struct .

 struct s { char* A; uint32_t B; int C; }; int main(void) { struct s test; test.A = "Hello"; test.B = 12345; test.C = -2; // Do stuff with 'test' return 0; } 

O, como se menciona en un comentario a continuación, podría usar un union lugar. Pero entonces no puede usar A, B y C al mismo tiempo como lo hice en el ejemplo anterior, solo se almacenará uno de ellos; en mi ejemplo, sería C.

Puede hacer una serie de estructuras si es necesario.

 struct s test[5]; // Array of structures 

Necesitas usar union

es decir

 typedef struct { int type; union { char *A; uint32_t B; int C; }} item;