[Đố vui] Bug trong hàm reset mảng?

Thấy câu đố cũng hay, mọi người cùng giải quyết nhé :smile:

Nguồn: RasPi.vn

2 Likes

Vì sizeof(arr) trả về độ lớn của con trỏ. Tức kq luôn sẽ là 4 hoặc 8 tùy theo hệ điều hành/compiler. :smile:

2 Likes

Chính xác rồi.

Với lại nếu mà arr không phải là parameter của hàm mà là mảng được khai báo trước khi truyền vào sizeof thì sizeof(arr) vẫn trả về kết quả là độ dài của mảng.

1 Like
  • Độ dài con trỏ phụ thuộc vào OS 32bit (4 byte) or 64bit (8 byte).
  • Khi truyền tham số vào cho hàm là 1 mảng cũng tương đương là truyền tham số là 1 con trỏ nên kích thước của nó là 4 or 8.

Vậy có ai đặt câu hỏi làm sao để sửa nó không?
Với yêu cầu không thêm Argument nào cả … ?

Nếu làm một cách tổng quát tất cả trường hợp như thế này thì buộc phải thêm một tham số n là số phần tử mảng vào.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?