[Buổi 22][Củng cố bộ nhớ & chuỗi][Lab] Bài 1: Memory Bug Clinic


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Memory Bug Clinic

Bối cảnh

Một starter program cần đọc n từ vào mảng động string, in theo thứ tự ngược rồi cleanup.

Trong bài học, lỗi thường gặp là delete sai cặp hoặc dùng sau release. Lời giải chuẩn thể hiện lifecycle đúng.

Yêu cầu

  1. Cấp phát string* a = new string[n].
  2. Đọc n token.
  3. In ngược.
  4. delete[] a rồi đặt nullptr.

Input

Dòng 1 n; dòng 2 n token.

Output

Một dòng token theo thứ tự ngược.

Ràng buộc

0 ≤ n ≤ 3000; token không có whitespace.

Ví dụ 1

Input

5
a b c d e

Output

e d c b a

Giải thích

Mảng động gồm năm chuỗi a b c d e. Sau khi sửa lỗi memory, thao tác đảo tại chỗ đổi cặp đầu-cuối và tiến dần vào giữa, tạo e d c b a. Vùng nhớ chỉ được delete[] sau khi hoàn tất xử lý và output, nên không có use-after-free.

Ví dụ 2

Input

0

Output


Giải thích

Khi n=0, chương trình không có chuỗi để đảo và không được truy cập phần tử đầu tiên. Output rỗng là đúng. Case này kiểm tra code đã xử lý đúng lifecycle thay vì cấp phát/truy cập vô điều kiện.

Thông tin học tập

  • Module: M06
  • Buổi: B22
  • Loại bài: LAB
  • Độ khó: Medium
  • Concepts: dynamic string arrays, new[], delete[], lifetime, cleanup
  • Giới hạn kiến thức: B01-B22
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo