30/09/2018, 20:48

[Đố 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é

Nguồn: RasPi.vn

*grab popcorn* viết 22:55 ngày 30/09/2018

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.

Bé tập Code viết 22:56 ngày 30/09/2018

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.

goneboy viết 22:58 ngày 30/09/2018
  • Độ 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.
Xuân Tâm viết 22:50 ngày 30/09/2018

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ả … ?

Bé tập Code viết 23:02 ngày 30/09/2018

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.

Bài liên quan
0