Bài 66. Cách sử dụng con trỏ và cấp phát bộ nhớ động trong lập trình C | Tự học lập trình C


Tóm tắt


Hàm malloc() : cấp phát bộ nhớ
ptr = (castType*) malloc(size);

ptr = (float*) malloc(100 * sizeof(float));

Hàm calloc() : cấp phát bộ nhớ và gán giá trị bằng 0

ptr = (castType*)calloc(n, size);

ptr = (float*) calloc(25, sizeof(float));


Lưu ý: nếu không cấp phát được sẽ trả về giá trị NULL

Hàm realloc() : hay đổi kích thước của bộ nhớ được cấp phát

ptr = realloc(ptr, x); 
Hàm free() : giải phóng bộ nhớfree(ptr);

Video giải thích chi tiết về Cách sử dụng con trỏ và cấp phát bộ nhớ động trong lập trình C | Tự học lập trình C



Code ví dụ


#include <stdio.h>
#include <stdlib.h>
int main(){
	int n;
	printf("Nhap so luong phan tu: ");
	scanf("%d", &n);
	
	//int* ptr = (int*)malloc(n*sizeof(int));
	int* ptr = (int*)calloc(n, sizeof(int));
	if(ptr==NULL){
		printf("\nError: Khong cap phat duoc vung nho");
		return 0;
	}
	
	for(int i=0; i<n; i++){
		printf("a[%d]=",i);
		scanf("%d", ptr+i);
	}
	
	// Xuat mang
	for(int i=0; i<n; i++){
		printf("%d ", *(ptr+i));
	}
	
	int x;
	printf("\nKich co mang muon thay doi la: ");
	scanf("%d", &x);
	realloc(ptr, x);
	
	
	// Xuat mang
	printf("\n");
	for(int i=0; i<x; i++){
		printf("%d ", *(ptr+i));
	}
	
	free(ptr);
}



    

Bạn có thể thích những bài đăng này:

Không có nhận xét nào:

Đăng nhận xét