01/10/2018, 11:23

Thảo luận về thứ tự cấp phát vùng nhớ trong C

Hôm nay có thằng em nó hỏi mình :" tại sao em tạo mảng a trước, mà p lại được xếp ở vị trí trước a trong bộ nhớ.? " ( Đang xét trong trường hợp các ô nhớ liên tiếp nhau đều trống rất nhiều, đủ để chứa cả mảng và con trỏ).
Thấy câu hỏi này hay nên chia sẻ cho mọi người, theo mình là vì thứ tự đọc p–>a thì chỉ đọc 1 lần, còn a–>p thì đọc đến p lại phải quay lại a.
Không biết có bác nào có giải thích hay hơn không.

Tao Không Ngu. viết 13:36 ngày 01/10/2018

Hi Nguyễn Vũ Hiếu Học.
Cái này thì có liên quan gì nhỉ ? theo mình là vì thứ tự đọc p-->a thì chỉ đọc 1 lần, còn a-->p thì đọc đến p lại phải quay lại a. .

Nguyễn Vũ Hiếu Học viết 13:30 ngày 01/10/2018

chính vì thế nên compiler nó sẽ ưu tiên tạo con trỏ trước rồi mới tạo mảng ấy. Mình nghĩ thế.

Tao Không Ngu. viết 13:24 ngày 01/10/2018

Hi Nguyễn Vũ Hiếu Học.
Bạn thử khai báo thêm nhiều biến con trỏ và mảng nữa xem. @_@!

rogp10 viết 13:27 ngày 01/10/2018

Ngoài ra có thể đặt giả thuyết là cùng kiểu thì xếp chung.

Bài liên quan
0