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

Đề tài: giải phóng bộ nhớ

  1. #1
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Angry giải phóng bộ nhớ

    Khi mình cấp phát bộ nhớ, mình đã dùng hàm new. vì vậy khi giải phóng bộ nhớ thì có bắt buộc phải dùng hàm delete ko? Mình dùng hàm free có xảy ra vấn đề gi ko?
    IF YOU ARE ALONE , I'LL BE YOUR SHADOW
    IF YOU WANT TO CRY, I'LL BE YOUR SHOULDER
    IF YOU NEED HAPPY, I'LL BE YOUR SMILE
    BUT ANYTIME YOU NEED A FRIEND
    IT JUST BE ME !!!

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    new + delete là của C++

    malloc + free là của C

    dùng cái nào cho ra cái đó đi bạn.


    Mặc dù vậy nhưng câu trả lời cho câu hỏi của bạn là có thể (mình chưa hiểu nhiều nhưng lúc trước có thử được ko báo lỗi )

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    new + delete là của C++

    malloc + free là của C

    dùng cái nào cho ra cái đó đi bạn.


    Mặc dù vậy nhưng câu trả lời cho câu hỏi của bạn là có thể (mình chưa hiểu nhiều nhưng lúc trước có thử được ko báo lỗi )
    Stack: malloc + free (C, C++)
    Heap: new + delete (C++)
    None!

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    0

    Stack: malloc + free (C, C++)
    Heap: new + delete (C++)
    -> Anh có thể giải thích rõ hơn một chút đc hok

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Cả Stack và Heap đều có ý nghĩa rất quan trọng trong việc thi hành code. Chúng được đặt trong bộ nhớ điều hành trên máy và chứa những phần của thông tin và chúng ta cần để vận hành.

    Sự khác nhau giữa Stack và Heap.


    Bạn hãy hình dùng Stack như một tập hợp các ngăn xếp mà ngăn đầu tiên nằm ở trên cùng. Chúng ta chỉ có thể làm việc được với ngăn xếp trên cùng ấy. Sau khi làm việc với ngăn trên cùng chúng ta phải “vứt” nó đi thì mới làm việc được với ngăn xếp tiếp theo. Còn Heap cũng tương tự như Stack nhưng mục đích sử dụng của Heap là để lưu trữ thông tin chứ không phải lưu lại tất cả các lần thi hành lệnh như stack và tất cả thông tin được lưu trên Heap có thể được truy cập bất kì thời điểm nào. Không có sự phụ thuộc dữ liệu nào được phép truy cập như stack. Nếu Heap là một đống quần áo sạch sẽ trên giường mà bạn có thể thử bất cứ cái nào thì stack như một hộp chứa đồ mà bạn phải lấy cái trước ra rồi mới lấy được cái sau.









    C++ chia memory thành nhiều vùng (area), mỗi vùng có những đặc điểm riêng của nó . Các vùng đó như sau :


    * 1. Vùng Const Data : chứa string literal như "hello" và các giá trị data mà giá trị của nó được biết tại compiler-time . Đây là vùng read-only và compiler có thể sử dụng thông tin này để tiến hành "tối ưu" khi tạo ra code ...

    * 2. Vùng Stack : chứa các biến automatic (biến local) hoặc chứa các đối số khi gọi function . Cấp phát trong vùng Stack thì nhanh hơn cấp phát "động" (xem Free Store và Heap ở dưới)

    * 3. Vùng Free Store : dùng để cấp phát memory "động" thông qua new/delete

    * 4. Vùng Heap : dùng để cấp phát memory "động" thông malloc/free

    * 5. Vùng Global/Staic : dùng để chứa các biến static, global .... "được tính toán và cấp phát 1 lần, ngay khi khởi động chương trình, và giữ nguyên trong suốt thời gian chương trình chạy, như vậy có nhược điểm là nếu kích thước lớn quá sẽ chiếm dụng nhiều bộ nhớ hệ thống => bạn không chủ động bỏ bớt đi được nếu không cần nó nữa, nó chỉ bị xóa bỏ khi chương trình kết thúc, vì thế chương trình của bạn nên có bộ nhớ tĩnh càng nhỏ càng tốt, chỉ khai báo trong bộ nhớ tĩnh những cái cần thiết." ( như et đã đề cập trong bài viết ở phía dưới)


    nguồn http://www.gotw.ca/gotw/009.htm
    Đã được chỉnh sửa lần cuối bởi langman : 09-12-2008 lúc 01:43 AM.
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

Các đề tài tương tự

  1. Trả lời: 1
    Bài viết cuối: 09-03-2014, 08:09 PM
  2. Trả lời: 0
    Bài viết cuối: 07-05-2013, 09:40 AM
  3. Trả lời: 1
    Bài viết cuối: 09-03-2013, 10:08 AM
  4. bán chung cư p3 phương liệt hoàng mai, sắp bàn giao nhà, ch p3 phuong liet giải phóng
    Gửi bởi haiphuong8888 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-08-2012, 05:20 PM
  5. Chung Cư 257 Giải Phóng, st/cn Chung Cư 257 Giải Phóng với DT: 81m, 33tr
    Gửi bởi datphat191 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-02-2012, 01:37 PM

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