This would be simple in C++ as you can create a number class that you can derive new types from and store a pointer to the base class in a collection. In any case, you should have a two two dimensional array defined like this:
const char* array[][3] = { {"ID", TYPE", "Value"}, {"X", "int", "4"}, ... };
Here is a sample program:
#include <stdio.h>
int main()
{
const char* array[][3] = {
{"ID", "TYPE", "Value"},
{"X", "int", "4"},
{"Y", "int", "4"},
{"Z", "float", "0.0"},
{NULL, NULL, NULL}};
size_t i = 0;
for (i = 0; array[i][0] != NULL; i++)
{
printf("%s\t%s\t%s\n", array[i][0], array[i][1], array[i][2]);
}
return 0;
}
Next you need to add code to turn these strings into real values. In any case, the output of this program is:
ID TYPE Value
X int 4
Y int 4
Z float 0.0