void*:void *vp = int_ptr;void* 賦值給具體指針需**顯式強轉**:int *ip = (int*)vp;*vp 編譯錯誤 (不知道讀幾字節)vp++ 錯誤 (不知道步長),需 (char*)vp++ 或 (int*)vp++typedef struct Node {
void *data;
struct Node *next;
} Node;
// 使用
int val = 42;
Node *n = malloc(sizeof(Node));
n->data = &val; // 隱式轉換 int* → void*
// 取用時強轉回原類型
int *p = (int*)n->data;
printf("%d\n", *p); // 42
typedef struct { int id; int fa[2]; } ST;
ST *p = malloc(sizeof(ST)); p->id = 1; p->fa[0]=2; p->fa[1]=3;
ST *q = malloc(sizeof(ST)); q->id = 2; q->fa[0]=4; q->fa[1]=5;
void **link = malloc(sizeof(void*));
*link = q; // void* 存儲 q
// 取用
ST *retrieved = (ST*)*link;
printf("%d %d %d\n", retrieved->id, retrieved->fa[0], retrieved->fa[1]);
void* 是 C 語言實現泛型編程、回調函數上下文傳遞、異構容器的基石。核心規則:只傳地址,不傳類型;用時強轉,運算轉 char*。