By GokiSoft.com|
16:16 06/12/2021|
Lập Trình C
[Video] Tìm hiểu pointer - malloc & calloc & realloc trong C - Khóa học lập trình C
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int x;//x -> bien so nguyen
int t[5];//t -> mang so nguyen gom 5 phan tu
int *p;
//p -> luu dia chi cua bien dang tro toi -> so nguyen hoac mang so nguyen
//p -> null -> chua tro toi bat ky vung nho nao.
// p = &x;
// p = t;
//Cap phat 1 vung nho cho tro p -> mang gom N phan tu
//Cap phat p -> tro vao 1 vung nho gom 5 phan
p = (int *) malloc (5 * sizeof(int));//coi p nhu khai int p[5] -> su dung bt.
//nhap phan tu cho mang p
int i;
for(i=0;i<5;i++) {
printf("\nNhap p[%d] = ", i);
scanf("%d", p + i);
// scanf("%d", &p[i]);
}
printf("\nDanh sach phan tu trong mang");
for(i=0;i<5;i++) {
printf("\n%d", p[i]);
}
free(p);
//Phan 2: cap dong bo nho -> thay doi dc bo nho chuong trinh
int *q;
//Cap phat cho q -> 2 o nho
q = (int *) calloc(2, sizeof(int));
q[0] = 1;
q[1] = 7;
//Mo rong q -> co tong 5 o nho
q = (int *) realloc (q, 5 * sizeof(int));
q[2] = 7;
q[3] = 2;
q[4] = 4;
//Mo rong q -> co tong 7 o nho
q = (int *) realloc (q, 7 * sizeof(int));
q[5] = 2;
q[6] = 9;
//Mo rong q -> co tong 8 o nho
q = (int *) realloc (q, 8 * sizeof(int));
q[7] = 10;
//Hien thi ket qua
printf("\nDanh sach phan tu trong mang (q)");
for(i=0;i<8;i++) {
printf("\n%d", q[i]);
}
//Giai phong tai nguyen
free(q);
return 0;
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)