Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การ delete void pointer ใน C/C++ ปลอดภัยไหม?


Void pointer คือ pointer ที่ไม่เชื่อมโยงกับชนิดข้อมูลใดๆ ชี้ไปที่ตำแหน่งข้อมูลในหน่วยความจำ เรียกว่า general purpose pointer

ไม่ปลอดภัยที่จะ delete void pointer ใน C/C++ เพราะ delete ต้องเรียก destructor ของออบเจ็กต์ที่ทำลาย ซึ่งเป็นไปไม่ได้ถ้าไม่รู้ชนิดข้อมูล

ตัวอย่าง void pointer แบบง่าย

ตัวอย่าง

#include<stdlib.h> int main() { int a = 7; float b = 7.6; void *p; p = &a; printf("Integer variable is = %d", *( (int*) p) ); p = &b; printf("\nFloat variable is = %f", *( (float*) p) ); return 0; }

ผลลัพธ์

Integer variable is = 7 Float variable is = 7.600000