#include <stdio.h>
#include <stdlib.h>
typedef struct {
void *dataPtr;
} DataItem;
typedef struct {
DataItem data[3];
int num;
} CONN;
void func2(int *ptr, CONN *conn)
{
conn->data[conn->num].dataPtr = (void *)ptr;
conn->num++;
}
void func(CONN *conn)
{
int *i = (int *)malloc(sizeof(int));
*i = 10;
int *j = (int *)malloc(sizeof(int));
*j = 20;
int *k = (int *)malloc(sizeof(int));
*k = 30;
int *ptr[3];
memset(ptr, 0, sizeof(ptr));
int *ptr1 = i;
int *ptr2 = j;
int *ptr3 = k;
ptr[0] = ptr1;
ptr[1] = ptr2;
ptr[2] = ptr3;
for (int q = 0; q < 3; q++)
{
switch(q)
{
case 0:
{
func2(ptr[0], conn);
break;
}
case 1:
{
func2(ptr[1], conn);
break;
}
case 2:
{
func2(ptr[2], conn);
break;
}
default:
{
break;
}
}
}
}
void print(CONN *conn)
{
printf("%d\n", conn->num);
for (int i = 0; i < conn->num; i++)
{
printf("num is: %d\n", *((int *)(conn->data[i].dataPtr)));
}
}
int main() {
CONN *conn = (CONN *)malloc(sizeof(CONN));
memset(conn, 0, sizeof(CONN));
func(conn);
print(conn);
return 0;
}