30/09/2018, 22:22
Thắc mắc về con trỏ trong C++
Mình có đoạn code ngắn sau:
int* xuat() {
int* p;
p = new int();
int* q;
q = p;
p = NULL;
return q;// tai sao p va q cung tro toi mot dia chi, trong khi gan p = NULL tai sao q khong bang NULL luon
// va return q thi van duoc nhu thuong.
}
Một phần liên quan tới java nhưng dù sao mình cx hỏi luôn: Sự khác biệt giữa lưu trữ bộ nhớ trên C++ và java là gì? Ví dụ như về lưu trữ đối tượng của chúng.
Bài liên quan
p = new int();
q = p; ``` q = 0x100100 ``` vì p là con trỏ nên giá trị của nó cũng là địa chỉ ô nhớ mà nó trỏ tới, suy ra ``` p = 0x100100 ↓ [int] (địa chỉ: 0x100100) ↑ q = 0x100100 ```
p = NULL; ``` p = 0x000000
Rất rõ ràng, cảm ơn bạn và nếu có thể bạn trình bày giúp mình việc lưu trữ đối tượng của class trong C++ và java co gì khác nhau.