Tableau de POINTEURS vers Plusieurs Types de C

Est-il possible d'avoir un tableau de plusieurs types en utilisant malloc?

EDIT:

Actuellement, j'ai:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define int(x) *((int *) x)


int main() {
        void *a[10];

        a[0] = malloc(sizeof(int));
        int(a[0]) = 4;

        char *b = "yola.";

        a[1] = malloc(strlen(b)*sizeof(char));
        a[1] = b;

        printf("%d\n", int(a[0]));
        printf("%s\n", a[1]);
}

Mais c'est salissant. D'autres moyens?

EDIT: à la Nettoyer un peu.

Beaucoup de choses sont possibles, mais beaucoup ne sont pas une bonne idée. Utilisation structs et unions (le dernier idéalement balisé avec un enum de sorte que vous savez quel est le champ où l'accès).
En plus d'être une mauvaise idée, comment peut-il être fait?
Qu'entendez-vous par "balisé avec un enum"?
Il y a une notion de tagged union, dans lequel une valeur externe (le tag) vous indique quelle partie de l'union est actuellement en cours d'utilisation. Si vous n'avez ni qui ni un autre moyen fiable pour dire que la partie est en cours d'utilisation, vous êtes dirigé à un comportement indéterminé (ou tout ce que dit la norme peut se produire lorsque vous écrivez à Un champ, mais le lire comme si le champ B a été défini).

OriginalL'auteur tekknolagi | 2011-10-17