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

Đề tài: Hàm free trong malloc.h...

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    1

    Lightbulb Hàm free trong malloc.h...

    Khi gán a = &b. Tiếp theo câu lệnh này là em đã giải phóng đi con trỏ a bằng lệnh free(a); nhưng tại sao địa chỉ của nó vẫn tồn tại qua câu lệnh printf("%d", &a); vậy ạ? Em ko hiểu về hàm free này cho lắm! Phải chăng nó ko quan tâm đến thứ tự các câu lệnh, mà chỉ giải phóng con trỏ a đó khi chương trình kết thúc?
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<malloc.h>
    4. main()
    5. {
    6. int* a;
    7. a = (int*)malloc(4);
    8. int b = 5;
    9. a = &b;
    10. free(a);
    11. printf("%d", &a);
    12. getch();
    13. }

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Bạn có 1 ngôi nhà, bạn mua/tạo được 1 cái biển số nhà: int *a
    -> bạn lắp biển số vào nhà : a=&b;
    Tương tự việc bạn phá dỡ nhà : free(a);
    Cái nhà đã được byebye nhưng cái biển số nhà bạn vẫn cất lại làm kỉ niệm vậy đó
    Giờ bạn muốn xem nội dung của a là gì thì cứ printf cái *a ra xem có gì vui ko ?
    Bạn nên nhớ: Biến tồn tại từ khi khai báo cho đến khi out khỏi khu vực mà nó được khai báo.
    Đã được chỉnh sửa lần cuối bởi clchicken : 20-11-2011 lúc 02:40 PM.

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

  1. Hàm malloc | Cấp phát bộ nhớ trong C
    Gửi bởi sieutanbinh1711 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 03-01-2014, 12:37 PM
  2. Hàm malloc trong C
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 04-12-2012, 07:34 AM
  3. Cơ chế hoạt động của malloc, new và free, delete như thế nào?
    Gửi bởi ghost_dragonking trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 19-10-2010, 07:53 AM
  4. Lỗi bộ nhớ free malloc trong VC++
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 28-12-2009, 12:57 PM
  5. Sử dụng malloc() và free() ?
    Gửi bởi howto trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 18
    Bài viết cuối: 02-12-2008, 09:36 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