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.