Đang chuẩn bị liên kết để tải về tài liệu:
Các phép toán File trên bộ nhớ tưởng tượng.

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

Một mảng các biến đã được ấn định kích thước, dùng để lưu trữ 1 lượng biến đã xác định (tại thời điểm biên dịch). Kích thước này sẽ không thể thay đổi sau khi biên dịch. Tuy nhiên chúng ta thường không biết trước được số lượng không gian cần thiết cho mảng . Vì vậy nên có thể sử dụng cấp phát bộ nhớ động để khắc phục nhược điểm trên của mảng, tránh lãng phí không gian nhớ | Topics Các cấu trúc, cấp phát động Các phép toán File trên bộ nhớ tưởng tượng. Bài tập Cấp phát động Một mảng các biến đã được ấn định kích thước, dùng để lưu trữ 1 lượng biến đã xác định (tại thời điểm biên dịch). Kích thước này sẽ không thể thay đổi sau khi biên dịch. Tuy nhiên chúng ta thường không biết trước được số lượng không gian cần thiết cho mảng . Vì vậy nên có thể sử dụng cấp phát bộ nhớ động để khắc phục nhược điểm trên của mảng, tránh lãng phí không gian nhớ. Hàm malloc void * malloc(unsigned int nbytes); Hàm malloc được sử dụng để cấp phát động nbytes trong bộ nhớ. malloc trả về con trỏ tới vùng nhớ được cấp phát nếu thành công, trả về con trỏ NULL nếu thất bại. Nên kiểm tra xem có cấp phát thành công hay không. Phải #include Ví dụ - Đảo ngược mảng động int main(void) { int i, n, *p; printf(“Bạn muốn nhập bao nhiêu số ?\n"); scanf("%d", &n); /* Cấp phát 1 mảng int với kích thước thích hợp */ p = (int *)malloc(n * sizeof(int)); if (p == NULL) { printf("Memory . | Topics Các cấu trúc, cấp phát động Các phép toán File trên bộ nhớ tưởng tượng. Bài tập Cấp phát động Một mảng các biến đã được ấn định kích thước, dùng để lưu trữ 1 lượng biến đã xác định (tại thời điểm biên dịch). Kích thước này sẽ không thể thay đổi sau khi biên dịch. Tuy nhiên chúng ta thường không biết trước được số lượng không gian cần thiết cho mảng . Vì vậy nên có thể sử dụng cấp phát bộ nhớ động để khắc phục nhược điểm trên của mảng, tránh lãng phí không gian nhớ. Hàm malloc void * malloc(unsigned int nbytes); Hàm malloc được sử dụng để cấp phát động nbytes trong bộ nhớ. malloc trả về con trỏ tới vùng nhớ được cấp phát nếu thành công, trả về con trỏ NULL nếu thất bại. Nên kiểm tra xem có cấp phát thành công hay không. Phải #include Ví dụ - Đảo ngược mảng động int main(void) { int i, n, *p; printf(“Bạn muốn nhập bao nhiêu số ?\n"); scanf("%d", &n); /* Cấp phát 1 mảng int với kích thước thích hợp */ p = (int *)malloc(n * sizeof(int)); if (p == NULL) { printf("Memory allocation failed!\n"); return 1; } Ví dụ - Đảo ngược mảng động int main(void) { . . . /* Nhận các số từ bàn phím */ printf("Please enter numbers now:\n"); for (i = 0; i = 0; --i) printf("%d ",p[i]); printf("\n"); /* Giải phóng bộ nhớ */ free(p); return 0; } Tại sao phải ép kiểu Việc ép kiểu: p = (int *)malloc(n*sizeof(int)); Là cần thiết vì hàm malloc trả về kiểu void*: void * malloc(unsigned int nbytes); Kiểu void* chỉ 1 kiểu con trỏ chung, có thể ép tới bất kì kiểu con trỏ nào. Giải phóng bộ nhớ đã được cấp phát void free(void *ptr); Ta sử dụng hàm free(p) để giải phóng bộ nhớ đã được cấp phát được chỉ đến bởi con trỏ p. Nếu p không trỏ đến 1 vùng nhớ đã được cấp phát bởi malloc, sẽ xảy ra lỗi thi hành. Luôn luôn phải nhớ giải phóng bộ nhớ nếu không cần đến chúng nữa. Exercise 2.1 Tạo hàm my_strcat(): - Đầu vào: 2 xâu s1,s2 Đầu ra: trả về con trỏ trỏ tới .

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.