#include <stdio.h>
typedef struct _sample1 {
char str1[7];
char str2[13];
double num1;
} sample1;
typedef struct _sample2 {
char str1[11];
char str2[3];
int num1;
} sample2;
void output(void* data[]) {
sample1* data1 = (sample1*)data[0]; // sample1 のポインタを取得
sample2* data2 = (sample2*)data[1]; // sample2 のポインタを取得
printf("sample1->str1: %s\n", data1->str1);
printf("sample1->str2: %s\n", data1->str2);
printf("sample1->num1: %f\n", data1->num1);
printf("sample2->str1: %s\n", data2->str1);
printf("sample2->str2: %s\n", data2->str2);
printf("sample2->num1: %d\n", data2->num1);
}
int main() {
sample1 data1 = {"123456", "123456789012", 12.345};
sample2 data2 = {"1234567890", "12", 123};
// void*は、任意のポインターを配列で受け取れる
void* data[2] = {};
data[0] = (void*)&data1;
data[1] = (void*)&data2;
output(data);
}