Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Thắc mắc về con trỏ

    Mình là newbie và có hai vấn đề về con trỏ mình vẫn chưa hiểu mong các pro chỉ giúp.
    Vấn đề 1: Giả sử mình có đoạn code sau:

    Mã:
    //.............
    int a = 0;  
    int *pa =&a;
    pa++;
    *pa= 20;
    //...........
    Mình có được quyền tăng con trỏ như trường hợp trên không? về nguyên lý nếu được thì có nghĩa là nó đã làm thay đổi dữ liệu ở ô nhớ bên cạnh. Điều này có thể phá hỏng dữ liệu nếu vô tình ô nhớ đó đang được dùng cho một biến nào đó khác. Nhưng khi code như vậy mình không thấy trình biên dịch báo lỗi gì? Và để khắc phục tình trạng trên thì làm sao? giả sử khi mình cho con trỏ trỏ vào một mảng có hữu hạn phần tử, nhưng trong code mình vô tình tăng con trỏ vượt ra ngoài phạm vi của mảng chẳng hạn..

    Vấn đề 2: Mình có thể gán địa chỉ cho một biến được khai báo trước đó không. Như đoạn code dưới:

    Mã:
    int a = 2;
    &a = (int*)0xa1;
    //...............
    Cảm ơn các bạn rất nhiều.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Vấn đề 1: Có khả năng lớn là chương trình sẽ bị bug. Bạn phải để ý khi lập trình để tránh bug này.
    Vấn đề 2: Không. Nếu build bằng Visual Studio chắc chắn là nó sẽ báo lỗi rồi đó.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •