Chào mọi người, hôm nay mình làm bài tập thì phát hiện ra mình có thể chưa hiểu con trỏ như mình nghĩ @@ . Mọi người giải đáp giúp mình vấn đề dưới với ạ
Mọi người có thể nhìn hàm swapData ở dưới đây. Mình có tạo một bản sao Node mang giá trị X trước khi hoán vị là ele_X_copy. Theo như kiến thức mình biết thì ele_X và ele_X_copy sẽ quản lý chung một vùng nhớ data B như hình.
Theo mình hiểu thì khi thay đổi giá trị trong data B qua ele_X thì ele_X_copy cũng sẽ cập nhật theo luôn phải không ạ? Thế nhưng khi ở trong hàm swapData mình thay đổi giá trị của ele_X bằng y nhưng giá trị của ele_X_copy lại không được cập nhật. Không biết việc này có phải là lỗi không hay mình đã hiểu sai bản chất con trỏ vậy ạ?
Hàm swapData là để hoán vị giá trị của 2 node mang giá trị x và y trong List và return node mang giá trị x trước khi hoán vị
Node *swapData(List &L, int const& x, int const& y)
{
if (L.pHead)
{
Node *ele_X = findNode(L, x); // tim phan tu co gia tri x trong list
Node *ele_Y = findNode(L, y); // tim phan tu co gia tri y trong list
if (ele_X && ele_Y)
{
Node *ele_X_copy = ele_X;
ele_X->info = y;
ele_Y->info = x;
return ele_X_copy;
}
}
return NULL;
}
Mong được giải ngố cảm ơn mọi người ạ!