Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Delete con trỏ quản lý mảng

  1. #1
    Ngày gia nhập
    09 2020
    Bài viết
    0

    Mặc định Delete con trỏ quản lý mảng

    Hiện em có bài tập quản lý sinh viên:
    1. Link đề: https://paste.ubuntu.com/p/vfVPNCJCss/?fbclid=IwAR0OotFxv-Hppo5Z_Gj1TNRHLT5uk4CKTN4p7QXBcuV2i85QZdfhjFHTwxo
    2. Link code cấu trúc dữ liệu, em tự xây dựng code theo đề bài: https://paste.ubuntu.com/p/WFwc3n3jbH/
    3. Link code hàm main: https://paste.ubuntu.com/p/c76pKy2VvQ/
    => Lỗi ở hàm main, em đang làm chức năng nhập danh sách các lớp. Em làm cách như sau:
    - Tạo 1 biến a có kiểu dữ liệu lop. Nhập dữ liệu cho biến này
    - Nếu là lớp đầu tiên thì cấp phát 1 vùng nhớ cho dsl.l rồi gán dữ liệu của a cho dsl.l
    - Ngược lại từ lớp thứ 2 trở đi, nới rộng vùng nhớ cho dsl.l để thêm lớp mới vào cuối danh sách (lỗi ở bước xóa con trỏ temp sau khi đã sử dụng xong)
    Em suy nghĩ mãi không hiểu được tại sao lại sai dòng delete[] temp;
    Mong các cao nhân giúp em thông chỗ này

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    513

    Bạn dùng trình biên dịch nào? Báo lỗi là gì?

  3. #3
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    933

    Ỏ lần nhập thông tin lớp thứ 2, biến temp đang trỏ tới một cấu trúc chứ không phải mảng cấu trúc, do vậy delete[] là sai.
    Nên tìm logic khác thì hay hơn hoặc dùng vector của C++ sẽ tránh được sai sót.
    Nếu vẫn muốn giữ logic này thì thay:
    dsl.l = new lop; bằng
    dsl.l = new lop[1];
    Mã của bạn chưa có chặn bắt lỗi nhập liệu (trôi lệnh nhập).

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn