01/10/2018, 14:41
'*(void**)pMem = pMem' có nghĩa là gì?
Xin chào mọi người, em có 1 câu hỏi mong mọi người giải đáp giúp.Trong quá trình đọc sách e có gặp 1 đoạn chương trình sau, trong đó con trỏ pMem kiểu void được cấp phát bởi hàm malloc():
static void markMem(void* pMem) { *(void**)pMem = pMem; }
mong mọi người giải đáp cho em ý nghĩa của dòng lệnh số 2 với ạ. Em cảm ơn
Bài liên quan





Bản thân pMem là con trỏ
void*.(void**): ép quavoid**chuẩn bị cho lệnh gán*: deref thànhvoid*cho khớp kiểu -> truy cập vùng nhớpMem= pMem: gán vùng nhớ trỏ bởi pMem bằng chính pMem, hay vùng nhớ mang địa chỉ của chính nó. (lưu ý : câu p = *p không có tính chất này :D)Câu lệnh này có vấn đề ở chỗ deref.