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

Đề tài: cho mình hỏi về vấn đề cấp phát bợ nhớ trong C

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    0

    Mặc định cho mình hỏi về vấn đề cấp phát bợ nhớ trong C

    các bác giùm giải thích cụ thể cho mình hiểu về cách dùng các hàm: malloc,calloc,realloc với.và chỉ cho mình cách sử dụng chúng khi nò luôn nha.
    mình mới vô lập trình à nên còn yếu lắm.mong các bác chỉ giúp giùm mình

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

    hèm hàm malloc là hàm khi cấp phát bộ nhớ thì nó sẽ gán giá trị rác cho phần tử của mảng với cú pháp là :
    Code:
    int *pt;
    pt=(int *) malloc(n * (sizeof(int) );// ở đây int* là ép kiểu về int còn n là số phần tử mảng xin cấp phát còn sizeof(int) là trả về kích thước thực của int là 2byte( cái này tùy trình biên dịch hiểu , với win là 4byte và dos là 2 byte).
    còn hàm calloc cũng tương tự khác ở chỗ khi cấp thì giá ttrị nó gán cho các phần tử là =0 với cú pháp:
    Code:
    pt=(int *) calloc(n,sizeof(int) );
    còn hàm realloc thì cấp mới cho con trỏ nếu con trỏ =0 và cấp tiếp nếu con trỏ pt !=0 với cú pháp:
    Code:
    pt=(int *) realloc(pt,n* sizeof(int) );
    ở đây nó sẽ kiểm tra xem nếu pt=0 tức đã đc free thì sẽ cấp mới còn nếu !=0 sẽ cấp thêm bộ nhớ vào cho nó ví dụ:
    mảng pt = 1 2 3 4, ở đây mảng có 4 phần tử kiểm tra pt!=0 sẽ cấp thêm số lượng bộ nhớ cho pt với giá trị là n khi nhập vào, ta nhập n=2 rồi nhập giá trị tiếp theo sẽ là 5 6 > mảng là 1 2 3 4 5 6. Chút kiến thức mọn nếu sai mong mọi người chỉ bảo dùm.Chúc bạn học tốt.Thân!!

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    0

    mình hiểu rồi,bạn cho mình cảm ơn nha.
    khi nào có vấn đề gì ko hiểu mình có thể hỏi bạn được không

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    9

    Cấp phát kiểu này nhìn phức tạp quá nhỉ.

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