Con trỏ void trong C là con trỏ không liên kết kiểu dữ liệu nào. Nó trỏ đến vị trí dữ liệu trong bộ nhớ, tức trỏ đến địa chỉ biến. Còn gọi là con trỏ dùng chung. Trong C, malloc() và calloc() trả về void * hoặc con trỏ chung.
Có một số hạn chế:
1) Không thể làm toán tử con trỏ với void pointer do kích thước cụ thể.
2) Không thể dùng như dereferenced.
Thuật toán
Bắt đầu
Khai báo a kiểu nguyên
Khởi tạo a = 7
Khai báo b kiểu float
Khởi tạo b = 7.6
Khai báo con trỏ p là void
Khởi tạo p trỏ a
In "Biến nguyên là"
In giá trị a dùng con trỏ p
Khởi tạo p trỏ b
In "Biến thực là"
In giá trị b dùng con trỏ p
Kết thúcVí dụ đơn giản:
Ví dụ mã
#include<stdlib.h>
int main() {
int a = 7;
float b = 7.6;
void *p;
p = &a;
printf("Biến nguyên là = %d", *( (int*) p) );
p = &b;
printf("\nBiến thực là = %f", *( (float*) p) );
return 0;
}Kết quả
Biến nguyên là = 7 Biến thực là = 7.600000